2014-08-29 12 views
5

Veri yönetimi için mongo kabuk komut dosyası yazıyorum. Fonksiyon kütüphanelerini modüller olarak kullanan modüler kod kullanarak yazmak istiyorum. Bazı durumlarda kendi modüllerim. Diğer durumlarda, dikkatle seçilen node.js modülleri (bildiğim Mongo kabuk ortamında çalışacaktır, örneğin uuid). Mongo, gerçek modül yönetiminden yoksundur. Ne yazık ki, Mongo gerçek modül yönetiminden yoksundur. yük() aynı şey değildir. Geriye doğru bir dolgu arıyordum.Mongo kabuğunda "gereksinim (modül)" nasıl yapılır

CommonJS modülü yükleme işlevselliği sağlayabilen bir kütüphane bilen var mı, Mongo kabuğunda çalışacak kadar genel mi yoksa Mongo kabuğunda çalışacak şekilde taşınmış mı?

Evet, biliyorum, sadece tamamen node.js ortamında yapabilirim. Ama eğer mongo kabuğunda çalışacak gerçek bir modül yükleyici gibi bir şey varsa, bu benim ilk tercihim olurdu.

+0

'Mongo' kabuğu, Node.js'den daha sınırlı bir JavaScript ortamıdır (özellikle G/Ç seçenekleri söz konusu olduğunda). Düğüm modüllerini kullanmak istiyorsanız, neden komut dosyanızı doğrudan düğümde kullanmıyorsunuz? – Stennie

cevap

0

Hayır. Mongo kabuğu, V8 motorunu çalıştıran kendi javascript ortamıdır. Node.js modüllerinde tarayıcıya yapabileceğinizden mongo kabuğuna yüklenemezsiniz. Çok sayıda Düğüm işlevi sadece mongo kabuk ortamının parçası olmayacaktır. Node.js sürücüsünü Node.js'de kullanabilir, böylece Düğüm modüllerinizi kullanabilir veya kabukları çalıştırırken uygun ortamı kurmak için çalıştırabileceğiniz bir js dosyasına gerekli bitleri almaya çalışabilirsiniz. Örneğin

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

Sorumu açıklığa kavuşturdum. Bu, keyfi node.js modüllerini çalıştırmakla ilgili değil. Standart bir sözdizimi kullanarak modüler kod yazmakla ilgilidir. –

+0

Modül yükleyici veya benzeri bir şey yok, AFAIK. Sahip olduğunuz en iyi şey, bir şey yapmak veya kapsamdaki işlevleri ve değişkenleri ayarlamak için kabuk başlangıcında bir komut dosyası çalıştırıyor. Eminim ki, insanlar bir çeşit modül yükleyiciyi (göz kırpma kırpması) iyi kullanırlar. – wdberkeley

+0

Yapardım! :) Eğer bulabilirsem, CommonJS malzemelerini taşıyarak bir çatlak alırdım. Web sitesi bozuk görünüyor. :( –

2

Peki, çalışmasını sağlamak için bazı ipuçları vardır. senin CommonJS modülünün modül gerektiriyorsa

ilk olarak bir basittir:

var module = {}; 

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

print(typeof module.exports); 

ikinci olarak, modül yukarıdaki örnekte olduğu gibi bunu browserify ile tek modül oluşturmak ve ihtiyaç için başkalarını edilir gerektiriyorsa .