Метеоритная сессия не определена - программирование
Подтвердить что ты не робот

Метеоритная сессия не определена

когда я запускаю проект метеор, эта проблема возникла:

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)

вот моя структура каталогов (я изменил имя файлов):

├── _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

Если я изменил структуру каталогов на следующую, Метеор работает правильно. Я действительно не знаю, почему, как это могло произойти? Я думаю, что порядок загрузки файлов может иметь значение для него. Но я не могу понять.

├── _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
4b9b3361

Ответ 1

Это может происходить, потому что Session работает только на клиенте, а в app/_components/talk/views/friends_list.coffee.js он также будет запущен на сервере.

Возможно, вы захотите переместить все свои виды/клиентскую часть в каталог /client или поместить его в:

if(Meteor.isClient) {

}

Ответ 2

В то время как вышеизложенное верно, если вы используете более новые версии Meteor, Session больше не поддерживается по умолчанию. Остановите свой сервер, откройте терминал и напишите:

meteor add session

Если вы ищете ReactiveVar и ReactiveDict, то же самое. Откройте терминал и напишите:

meteor add reactive-var reactive-dict 

Ответ 3


Согласно последнему Метеору ^ 1.5.1

.meteor/packages файлу .meteor/packages и добавьте session в последнюю строку.

ПРИМЕЧАНИЕ: не имеет значения, был ли ваш метеоритный сервер включен или нет.


Старый ответ

Остановите метеорный сервер и выполните команду ниже.

meteor add session

Ответ 4

Это случилось со мной после того, как я развернулся к DigitalOcean с mupx.

Session работал при разработке на локальном хосте, но после развертывания я получил ReferenceError: Session is not defined

Ошибка была исправлена ​​после добавления session в пакеты метеоров и перераспределения.