2013-08-16 26 views
9

Właśnie zaczynam od Meteora i pracuję nad istniejącym projektem. Używam do problemu z jednym z pakietów (obserwatorium-apollo), który zawiera następujący wiersz:Co to jest __meteor_bootstrap__?

 __meteor_bootstrap__.app.use Observatory.logger #TLog.useragent 

skarży się, że __meteor_bootstrap__.app jest niezdefiniowany.

Czym dokładnie jest __meteor_boostrap__? Nie mogę znaleźć opis tego, co to jest, ale z wątków, ludzie wydają się wiedzieć, jak z niego korzystać. Widzę tylko to zdefiniowane w boot.js, ale tak naprawdę niewiele mi to mówi ...

+0

p Czy w ogóle odniesienie do bootstrapu twitter? czy zainstalowałeś pakiet bootstrap? –

+0

Próbowałem tego, ale nie pomagam. Wygląda na to, że jest coś innego. Kinda odd ... – wciu

+0

Wydaje się być zmienną środowiskową: https://github.com/meteor/meteor/blob/d477c8d03bb078f7e8e85dbe4b51db7ae5689573/tools/unipackage.js –

Odpowiedz

11

Meteor używa connect modułu npm pod maską, z różnych powodów, do serwowania plików statycznych, na przykład. __meteor_bootstrap__.app było odniesieniem do instancji aplikacji connect.

Zanim został __meteor_bootstrap__.app, ale zmienił kilka wydań temu i stał się obiektem WebApp.connectHandlers i jest częścią pakietu WebApp.

WebApp to standardowy pakiet Meteorów, podstawowy pakiet do tworzenia aplikacji webowych. Zwykle nie trzeba dodawać jawnie, ponieważ jest to zależność od standard-app-packages.

Przykład użycia connectHandlers jest wstrzykiwać połączyć middleware w taki sam sposób, jak można użyć dowolnego connect middleware (lub express middleware, express jest zbudowany na szczycie connect):

WebApp.connectHandlers 
    .use(connect.query()) 
    .use(this._config.requestParser(bodyParser)) 

Możesz zajrzeć w meteor-router Atmosphere opakowaniu i zabrać go jako przykładu: https://github.com/tmeasday/meteor-router/blob/master/lib/router_server.js

więcej o connect: https://npmjs.org/package/connect

+3

Tak, '__meteor_bootstrap __. App' jest równoważne' Webapp.connectHandlers'. Po prostu upewnij się, że 'app.use ('webapp', 'server');' aby go uzyskać. –

+0

@AndrewMao Dzięki za dodatki, zmienię moją odpowiedź – imslavko

+0

Dzięki za szczegółowe wyjaśnienie! – wciu