2014-08-29 8 views
5

Piszę skrypt powłoki mongo do zarządzania danymi. Chcę napisać to za pomocą kodu modułowego, który korzysta z bibliotek funkcji jako modułów. W niektórych przypadkach moje własne moduły. W innych przypadkach starannie wybrane moduły node.js (które, jak wiem, będą działać w środowisku powłoki Mongo, np. Uuid).Jak "wymagać (moduł)" w powłoce mongo

Niestety, Mongo nie ma prawdziwego zarządzania modułem. load() to nie to samo. Szukam back-fill, jak to było.

Czy ktoś wie o bibliotece, która może zapewnić funkcję ładowania modułów CommonJS, która jest na tyle ogólna, aby działać w powłoce Mongo, lub która została przeniesiona do działania w powłoce Mongo?

Tak, wiem, mógłbym to zrobić w czystym środowisku node.js. Ale jeśli istnieje coś takiego, jak prawdziwy moduł ładujący moduły, który będzie działał w powłoce Mongo, byłby to mój pierwszy wybór.

+0

Powłoka 'mongo' jest bardziej ograniczonym środowiskiem JavaScript niż Node.js (szczególnie jeśli chodzi o opcje we/wy). Jeśli chcesz używać modułów węzłów, dlaczego nie chcesz zaimplementować swojego skryptu bezpośrednio w węźle? – Stennie

Odpowiedz

0

Nie. Powłoka mongo to własne środowisko javascript z silnikiem V8. Nie można już załadować modułów Node.js do powłoki Mongo, niż można do przeglądarki. Wiele funkcji Node po prostu nie będzie częścią środowiska powłoki Mongo. Możesz użyć sterownika Node.js w Node.js, aby móc korzystać z modułów Node, lub możesz spróbować pobrać niezbędne bity do pliku js, który możesz uruchomić, aby skonfigurować odpowiednie środowisko po uruchomieniu powłoki, na przykład

mongo --shell mymongohost:port/myDB myjsfunctions.js 
+1

Ja wyjaśniłem moje pytanie. Nie chodzi o uruchamianie dowolnych modułów node.js. Chodzi o pisanie kodu modułowego za pomocą standardowej składni. –

+0

Nie ma modułu ładującego ani nic takiego, AFAIK. Najlepsze, co masz, to uruchamianie skryptu podczas uruchamiania powłoki, albo coś zrobić, albo skonfigurować funkcje i zmienne w zakresie. Jestem pewien, że ludzie dobrze wykorzystaliby jakiś moduł ładujący moduły (mrugnięcie oka). – wdberkeley

+0

Chciałbym! :) Zrobiłbym cack na portowanie rzeczy CommonJS, gdybym mógł go znaleźć. Strona wydaje się być uszkodzona. :( –

2

Cóż, istnieje kilka wskazówek, jak je uruchomić.

Pierwszy, jeśli moduł CommonJS nie wymaga modułu jest proste:

var module = {}; 

load('/lib/migration/forms.js'); 

print(typeof module.exports); 

drugim, jeśli moduł wymaga innych jest zbudowanie pojedynczego modułu z browserify i wymagają jak w powyższym przykładzie .

Powiązane problemy