Метеоритная сессия не определена
когда я запускаю проект метеор, эта проблема возникла:
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
Ответы
Ответ 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
в пакеты метеоров и перераспределения.