Reputation: 133
when I run my meteor project, this problem occurred:
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)
here is my directory structure (I have changed the name of the files):
├── _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
If I change the directory structure to the following, meteor runs correctly.I really don't know why, how could it happened? I think the file loading order may make a difference to it. But I can't figure it out.
├── _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
Upvotes: 13
Views: 18503
Reputation: 6008
goto .meteor/packages
file and add session
at the last line.
NOTE: It does not matter whether your meteor server was UP or NOT.
Stop the meteor server and run below command.
meteor add session
Upvotes: 10
Reputation: 1383
While the above is correct, if you are using newer versions of Meteor, Session is no longer supported by default. Stop your server, open terminal and write:
meteor add session
If you’re looking for ReactiveVar and ReactiveDict, same issue. Open terminal and write:
meteor add reactive-var reactive-dict
Upvotes: 74
Reputation: 9905
This happend to me after i deployed to DigitalOcean with mupx.
Session worked when developing on localhost, but after deploying i got ReferenceError: Session is not defined
Error was fixed after adding
session
to meteor packages and redeployed.
Upvotes: 2
Reputation: 75945
This might be happening because Session
only works on the client and at app/_components/talk/views/friends_list.coffee.js
it would also be run on the server.
You might want to move all your views/client side stuff into the /client
directory or place it in:
if(Meteor.isClient) {
}
Upvotes: 19