2014-11-05 26 views
23

Yani benim düğüm uygulamasını başlatmak için çalışılıyor başarısız ama benim MongoDB yükleme kaynaklanan birkaç hata var.npm (kerberos ve BSON hataları)

düğüm => 0.10.33 (nodejs.org yüklü)

npm> 1.4.28 (nodejs yüklenen =: Burada

benim dev ortamı için gözlük vardır .org)

git => 2.1.3 (homebrewed)

mongodb => Bir öğretici bir parçası olarak, ben de Mean Stack Skeleton kullanıyorum bir fark yaparsa 2.6.5 (homebrewed)

. Ben $ node app.js kullanarak düğüm app çalıştırmayı denediğinizde Özetle

, ben şu geri bildirim almak:

USER$ npm install mongoose 

> [email protected] install /Users/USER/APP/node_modules/mongoose/node_modules/mongodb/node_modules/kerberos 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 

    CXX(target) Release/obj.target/kerberos/lib/kerberos.o 
    CXX(target) Release/obj.target/kerberos/lib/worker.o 
    CC(target) Release/obj.target/kerberos/lib/kerberosgss.o 
    CC(target) Release/obj.target/kerberos/lib/base64.o 
    CXX(target) Release/obj.target/kerberos/lib/kerberos_context.o 
    SOLINK_MODULE(target) Release/kerberos.node 
    SOLINK_MODULE(target) Release/kerberos.node: Finished 

> [email protected] install /Users/USER/APP/node_modules/mongoose/node_modules/mongodb/node_modules/bson 
> (node-gyp rebuild 2> builderror.log) || (exit 0) 

    CXX(target) Release/obj.target/bson/ext/bson.o 
    SOLINK_MODULE(target) Release/bson.node 
    SOLINK_MODULE(target) Release/bson.node: Finished 
[email protected] node_modules/mongoose 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] 
├── [email protected] ([email protected]) 
└── [email protected] ([email protected], [email protected], [email protected]) 

ben hem kerberos ve bson modülleri için builderror.log dosyaları kontrol etti. Ancak her ikisi de boş.

Bulduğum bazı araştırmalar, bu sorunun nedeni, node-gyp yüklememin ilgili binding.gyp dosyasının olmaması nedeniyle olabileceğini düşündürmektedir.

Ayrıca benim node.js proje klasörünün içindeki $ node-gyp configure çalışan çalıştı. Ve bu, aldığım hata:

gyp: binding.gyp not found (cwd: /Users/USER/APP) while trying to load binding.gyp 
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1 
gyp ERR! stack  at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:343:16) 
gyp ERR! stack  at ChildProcess.emit (events.js:98:17) 
gyp ERR! stack  at Process.ChildProcess._handle.onexit (child_process.js:810:12) 
gyp ERR! System Darwin 12.5.0 
gyp ERR! command "node" "/usr/local/bin/node-gyp" "configure" 
gyp ERR! cwd /Users/USER/APP 
gyp ERR! node -v v0.10.33 
gyp ERR! node-gyp -v v1.0.2 
gyp ERR! not ok 

Neden bu sorunlara sahip olduğum hakkında bir fikriniz var mı?

DÜZENLEME: Bağlantı noktası, app.js dosyamdaki bağlantı noktasını, Express sunucusunun dinlediği aynı bağlantı noktasına ayarladıktan sonra, Mongoose 3.9.4 kullandığımı belirten daha fazla geri bildirim alıyorum. mongoose'un son kararsız sürümü. Yani benim package.json içinde 3.8.18 modülü kurmak ve modülü yeniden çalıştı. Aynı hataları aldım. Ancak, kararsız sürüm geri bildirimi artık gitti.

cevap

0

Ben cd 'kerberos ve bson dizinlere d sonra komutu $ node-gyp rebuild ve doğru olarak derlenmiş düğüm modülleri kullanılır.

var app = express(); 
... 
var Mongoose = require('mongoose'); 
var db = Mongoose.createConnection('localhost','database'); 

// all environments 
app.set('port', process.env.PORT || 3000); 

Bu port numarası veritabanı örneğinin limanından benzersiz olmalıdır:

Benim app.js dosya

, ben aşağıdaki satırları denir. Ayrı bir Terminal penceresine

, sizin MongoDB kadar biriktirmek için $ mongod çalıştırın. Bir kez çağrıldığında, başka bir terminal penceresinde, $ mongo database'u arayın. Bu bağlanmak için node.js uygulaması için database denilen veritabanı örneğini oluşturur. Orijinal Terminal penceresinde, $ node app.js çağrı ve herhangi bir hata geri besleme olmadan çalışacaktır.Ben başlamıştı

hataları Gelincik, MongoDB veya bunların bağımlılıkları herhangi birinin yanlış yapı sonucu değildi. Hatalar MongoDB hakkında bir yanlış anlaşılmanın sonucuydu. Uygulamanın bir veritabanı bağlantısı yapabilmesi için MongoDB'nin Node.js uygulamanıza ayrı bir işlem olarak çalıştırılması gerekir.

13

Küresel kapsam içine düğüm-gyp yükleyerek bu düzelttik. Umarım yardımcı olur.

$ npm install -g node-gyp 
+0

basit, tatlı ve çalıştım –

+0

Çok teşekkür ederim – Shreyas

4

Sadece MongoDB kaldırıp başarıyla mongoose yükleyin. Bir Linux dağıtımı üzerinde herkes için

npm uninstall mongodb --save 
npm install mongoose --save 
54

Eğer libkrb5-dev (veya dağıtıma benzer paket) yüklü olduğundan emin olun. Bu, bson ve kerberos ile birçok yapı hatalarına dikkat edecektir. ubuntu kullanıcıları için

+2

mükemmel çalıştı – MQ87

+1

Çok teşekkür ederim, işe yarıyor! Ben LinuxMint 17'de aynı sorunu vardı ve paketini yüklemeyi çözüldü: http://community.linuxmint.com/software/view/libkrb5-dev – iarroyo

+1

Gelincik ve MongoDB bu ucunu kullanarak yüklemek için Yönetilen. Terminalimde hala birkaç uyarı vardı ama hata yok. Ubuntu 14.04. CentOS [(? dokümanlardan, sanırım)] olarak – piratemurray

18

, ilk kaldırma sonra kerberos güncelleştirme

apt-get install libkrb5-dev 
yüklemek
npm uninstall mongoose --save 

moongose ​​

sonra bu oraya birilerini yardımcı olur umarım moongose ​​tekrar

npm install mongoose --save 

"yükle" .