user2483084
user2483084

Reputation: 133

Meteor Session is not defined

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

Answers (4)

Ankur Soni
Ankur Soni

Reputation: 6008


As per latest Meteor ^1.5.1

goto .meteor/packages file and add session at the last line.

NOTE: It does not matter whether your meteor server was UP or NOT.


Old Answer

Stop the meteor server and run below command.

meteor add session

Upvotes: 10

Adam Moisa
Adam Moisa

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

Cristian Muscalu
Cristian Muscalu

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

Tarang
Tarang

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

Related Questions