Meteor Session未定义

use*_*084 14 session meteor

当我运行我的流星项目时,出现了这个问题:

ReferenceError: Session is not defined
at app/_components/talk/views/friends_list.coffee.js:1:16
at /home/xyz/web/edp/.meteor/local/build/server/server.js:298:12
at Array.forEach (native)
at Function._.each._.forEach (/home/xyz/.meteorite/meteors/meteor/
    meteor/9bb2b5447e845c4f483df5e9b42a2c1de5ab909b/
    dev_bundle/lib/node_modules/underscore/underscore.js:78:11)
Run Code Online (Sandbox Code Playgroud)

这是我的目录结构(我已经更改了文件的名称):

??? _components
?   ??? project_form
?   ?   ??? client
?   ?       ??? lib
?   ?       ?   ??? ...
?   ?       ??? project_info
?   ?       ?   ??? x1.coffee
?   ?       ?   ??? x2.html
?   ?       ?   ??? x3.coffee
?   ?       ?   ??? x4.html
?   ?       ??? views
?   ?           ??? x5.coffee
?   ?           ??? x6.html
?   ??? README.md
?   ??? talk
?       ??? client
?             ??? x7.coffee
?             ??? x8.html
?             ??? x9.coffee
?             ??? x10.html
?             ??? x11.coffee
?             ??? x12.html
?             ??? x13.coffee
?             ??? x14.html
?             ??? x15.less
Run Code Online (Sandbox Code Playgroud)

如果我将目录结构更改为以下内容,meteor正确运行.我真的不知道为什么,怎么会发生?我认为文件加载顺序可能会对它产生影响.但我无法弄明白.

??? _components
?   ??? project_form
?   ?   ??? client
?   ?       ??? lib
?   ?       ?   ??? ...
?   ?       ??? project_info
?   ?       ?   ??? x1.coffee
?   ?       ?   ??? x2.html
?   ?       ?   ??? x3.coffee
?   ?       ?   ??? x4.html
?   ?       ??? views
?   ?           ??? x5.coffee
?   ?           ??? x6.html
?   ??? README.md
?   ??? talk
?       ??? client
?           ??? views
?               ??? x7.coffee
?               ??? x8.html
?               ??? x9.coffee
?               ??? x10.html
?               ??? x11.coffee
?               ??? x12.html
?               ??? x13.coffee
?               ??? x14.html
?               ??? x15.less
Run Code Online (Sandbox Code Playgroud)

Ada*_*isa 75

虽然以上是正确的,但如果您使用的是较新版本的Meteor,则默认情况下不再支持Session.停止服务器,打开终端并写:

meteor add session
Run Code Online (Sandbox Code Playgroud)

如果您正在寻找ReactiveVar和ReactiveDict,同样的问题.打开终端并写:

meteor add reactive-var reactive-dict 
Run Code Online (Sandbox Code Playgroud)

  • 你需要去终端并导航流星项目并运行命令行"meteor add session" (2认同)

Aks*_*hat 18

这可能会发生,因为Session只能在客户端app/_components/talk/views/friends_list.coffee.js上运行,并且它也可以在服务器上运行.

您可能希望将所有视图/客户端内容移动到/client目录中或将其放入:

if(Meteor.isClient) {

}
Run Code Online (Sandbox Code Playgroud)


Ank*_*oni 10

---------- 按照最新的流星1.5.1 ----------

转到.meteor/packages文件并session在最后一行添加.

注意:您的流星服务器是否为UP并不重要.

------------------- 老答案 -----------------

停止流星服务器并运行以下命令.

meteor add session
Run Code Online (Sandbox Code Playgroud)