2014-08-29 13 views
5

Tôi đang viết một kịch bản shell mongo để quản lý dữ liệu. Tôi muốn viết nó bằng cách sử dụng mã mô-đun mà làm cho việc sử dụng các thư viện chức năng như các mô-đun. Trong một số trường hợp, các mô-đun của riêng tôi. Trong các trường hợp khác, các mô-đun node.js được chọn cẩn thận (mà tôi biết sẽ hoạt động trong môi trường trình bao Mongo, ví dụ: uuid).Cách "yêu cầu (mô-đun)" trong vỏ mongo

Thật không may, Mongo thiếu quản lý mô-đun thực. load() không giống nhau. Tôi đang tìm kiếm một điền lại, như nó được.

Không ai biết thư viện có thể cung cấp chức năng tải mô-đun CommonJS, đó là đủ chung để chạy trong trình bao Mongo, hoặc đã được chuyển để chạy trong trình bao Mongo?

Vâng, tôi biết, tôi chỉ có thể làm điều đó trong môi trường hoàn toàn node.js. Nhưng nếu có một thứ như một bộ nạp mô-đun thực sẽ làm việc trong vỏ mongo, đó sẽ là lựa chọn đầu tiên của tôi.

+0

Vỏ 'mongo' là môi trường JavaScript hạn chế hơn so với Node.js (đặc biệt là khi nói đến các tùy chọn I/O). Nếu bạn muốn sử dụng mô-đun Nút, tại sao bạn không triển khai tập lệnh của mình trong Nút trực tiếp? – Stennie

Trả lời

0

No. Vỏ mongo là môi trường javascript của riêng nó chạy động cơ V8. Bạn không thể tải các mô-đun Node.js vào vỏ mongo hơn bạn có thể vào trình duyệt. Rất nhiều hàm Node sẽ không phải là một phần của môi trường vỏ mongo. Bạn có thể sử dụng trình điều khiển Node.js trong Node.js để bạn có thể sử dụng các mô-đun nút của mình hoặc bạn có thể thử lấy các bit cần thiết vào tệp js mà bạn có thể chạy để thiết lập môi trường thích hợp khi bạn chạy trình bao, ví dụ

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

Tôi đã làm rõ câu hỏi của mình. Đây không phải là về việc chạy các mô-đun node.js tùy ý. Đó là về cách viết mã mô-đun bằng cách sử dụng một cú pháp chuẩn. –

+0

Không có trình nạp mô-đun hoặc bất kỳ thứ gì tương tự, AFAIK. Tốt nhất bạn có là chạy một kịch bản lúc khởi động shell, hoặc là để làm một cái gì đó hoặc để thiết lập một chức năng và các biến trong phạm vi. Tôi chắc chắn mọi người sẽ sử dụng tốt một số loại bộ nạp mô-đun (nháy mắt nháy mắt). – wdberkeley

+0

Tôi muốn! :) Tôi sẽ có một crack tại porting các công cụ CommonJS, nếu tôi có thể tìm thấy nó. Trang web dường như bị hỏng. :( –

2

Vâng, có một số mẹo để làm cho nó hoạt động.

Đầu tiên, nếu module CommonJS của bạn yêu cầu không có mô-đun là một đơn giản như:

var module = {}; 

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

print(typeof module.exports); 

Thứ hai, nếu module của bạn đòi hỏi người khác là để xây dựng một mô-đun duy nhất với browserify và yêu cầu nó như trong ví dụ trên .

Các vấn đề liên quan