2013-06-13 12 views
14

gdy uruchomię mój projekt meteor, problem ten wystąpił:Meteor Sesja nie została zdefiniowana

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) 

tutaj jest moja struktura katalogów (I zmieniły nazwę plików):

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

Jeśli Zmieniam strukturę katalogów na następujące, meteor działa poprawnie. Naprawdę nie wiem dlaczego, jak to się mogło stać? Myślę, że kolejność ładowania pliku może to zmienić. Ale nie mogę tego rozgryźć.

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

Odpowiedz

18

To może się dziać, ponieważ Session działa tylko na kliencie i na app/_components/talk/views/friends_list.coffee.js byłoby również być uruchamiane na serwerze.

Możesz chcieć przenieść wszystkie swoje poglądy/client side rzeczy do katalogu /client lub umieścić go w:

if(Meteor.isClient) { 

} 
+0

wielkie dzięki, myślę, że masz rację. – user2483084

73

Chociaż powyższe jest prawdziwe, jeśli używasz nowsze wersje Meteor, Sesja nie jest dłużej obsługiwane domyślnie. Zatrzymaj serwerze otwórz terminal i napisać:

meteor add session 

Jeśli szukasz ReactiveVar i ReactiveDict, tym samym numerze. Otwórz zacisk i zapisu:

meteor add reactive-var reactive-dict 
+2

Musisz iść do terminalu i nawigować po projekcie meteorytu i uruchomić wiersz polecenia "sesja dodawania meteorytów" – Chetan

+0

Wielkie dzięki. Byłem ciekawy co się stało przez pierwsze 5 minut, ale to naprawiło mój problem. Możesz dodać także pakiet sesji, gdy dołączasz sesję do .meter/packages – Kasmetski

+1

Myślę, że to jest motywowanie ludzi do używania reaktywnych Vars zamiast tego. Obecnie społeczność niewłaściwie korzysta z pakietu sesji. –

10

---------- Jak na ostatni Meteor 1.5.1 ----------

goto .meteor/packages plik i dodaj session w ostatnim wierszu.

UWAGA: To nie ma znaczenia, czy Twój serwer meteor był czy nie.

------------------- OLD ODPOWIEDŹ -----------------

Zatrzymaj serwer meteorów i uruchom poniżej polecenia.

meteor add session 
Powiązane problemy