2014-08-29 1 views
5

Я пишу скрипт оболочки mongo для управления данными. Я хочу написать его с помощью модульного кода, который использует библиотеки функций в качестве модулей. В некоторых случаях мои собственные модули. В других случаях тщательно выбранные модули node.js (которые, как я знаю, будут работать в среде оболочки Mongo, например uuid).Как «потребовать (модуль)» в оболочке mongo

К сожалению, у Монго не хватает реального управления модулем. load() - это не одно и то же. Я ищу как-то заполненный.

Кто-нибудь знает о библиотеке, которая может предоставить функциональность загрузки модуля CommonJS, которая является достаточно общей для работы в оболочке Mongo или переносится для работы в оболочке Mongo?

Да, я знаю, я мог бы просто сделать это в чистой среде node.js. Но если есть такая вещь, как реальный загрузчик модулей, который будет работать в оболочке mongo, это будет мой первый выбор.

+0

Оболочка 'mongo' - это более ограниченная среда JavaScript, чем Node.js (особенно, когда речь заходит о вариантах ввода/вывода). Если вы хотите использовать модули узла, почему бы вам не реализовать свой скрипт в узле напрямую? – Stennie

ответ

0

No. Mongo shell - это собственная среда javascript, работающая на двигателе V8. Вы не можете загружать модули Node.js в оболочку mongo больше, чем можете в браузере. Многие функции Node просто не будут частью среды оболочки mongo. Вы можете использовать драйвер Node.js в Node.js, чтобы вы могли использовать модули узла, или вы можете попытаться получить необходимые биты в файл js, который вы можете запустить, чтобы настроить соответствующую среду при запуске оболочки, например

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

Я уточнил свой вопрос. Речь идет не о запуске произвольных модулей node.js. Речь идет о написании модульного кода с использованием стандартного синтаксиса. –

+0

Нет загрузчика модуля или чего-то подобного, AFAIK. Самое лучшее, что у вас есть, - запустить скрипт при запуске оболочки, либо сделать что-то, либо настроить функции и переменные в области. Я уверен, что люди будут использовать какой-то модуль-загрузчик (подмигивают). – wdberkeley

+0

Я бы! :) Я бы взломал при портировании материала CommonJS, если бы мог найти его. Сайт, похоже, сломан. :( –

2

Ну, есть несколько советов, чтобы заставить его работать.

Во-первых, если ваш модуль CommonJS не требует модуля является простым, как:

var module = {}; 

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

print(typeof module.exports); 

Во-вторых, если ваш модуль требует других, чтобы создать единый модуль с browserify и требуют, как в приведенном выше примере ,

 Смежные вопросы

  • Нет связанных вопросов^_^