2015-10-24 16 views
13

Açık bir şekilde çalışan ve mongodb ile iletişim kuran bir uygulamam var. Bu birleştirmek için bir yol var mı,Mongodb'i başlatmanın ve ifade etmenin doğru yolu?

1.Start mongodb

mongod --dbpath data --config mongo.conf" 

2.Start Express

node server.js 

Sorum şu: Bu Uygulamamı başlamak nasıl? Düğümün tek bir iş parçacığı olduğunu biliyorum, bu yüzden server.js'den hem express hem de mongo'yu çalıştıramıyoruz, ancak doğru yol nedir? Nong kullanarak javascript dosyasından mongo başlatmak mümkün mü?

Düzenleme:

Ben mongod --dbpath verileri ve düğümün server.js ayrı iki farklı komut istemini çalıştırabilirsiniz. Sorum şu onları bir dosyadan başlatmak (eğer mümkünse).

+1

Pencerelerde mi çalışıyorsunuz? – Hristo

+0

@Chris Pencerelerdeyim. dağıtım sunucum linux. – WhatisSober

cevap

10

start Pencereleri yeni cmd yaratır benim yapılandırma olduğunu!

+0

Aynı durumdaki herkes için, daha yüksek bir kardeş klasöründe mongo klasörüm vardı, bu yüzden yapılandırmamı bu "başlangıç" gibi görünecek şekilde değiştirdim: "cd .. & md mongo-db & start mongod --dbpath./Mongo-db "' – Evildonald

-1

Evet. Elinden Linux üzerinde çalışıyorsa daha https://docs.npmjs.com/misc/scripts

+0

, bu pencere üzerinde çalışıyor mu? – Hristo

+0

NODE_ENV ve NODE_PATH pencerelerinde env olarak ayarlandığı sürece düşünürdüm. – drowzy

+5

Bence burada bir problem var, çünkü mongod arka plan düğümünde başlamıyor çünkü server.js aslında kaçmıyor.Kodunuzu test etmedim böylece yanılıyor olabilirim. :) – Hristo

1

için bkz başlangıç ​​komut package.json

tanımlanan çalıştırır npm start çağrılması

{ 
    "name": "my package", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "mongod --dbpath data --config mongo.conf && node server.js", 
    }, 
    "devDependencies": { 
    "express": "*" 
    } 
} 

: komut dosyalarını tanımlayabilir senin package.json kullanma ihtiyacınız olanı yapan komut dosyalarını tanımlamak için package.json dosyasını kullanın. Eğer MongoDB kullanmak ve aynı zamanda uygulamayı çalıştırmak için

"mongod --fork --dbpath data --config mongo.conf" ve "node index.js" kullanabilir ve bu sadece iyi çalışacak

Eğer Linux kullanıyorsanız:

busses bazı sorunlar vardır.

Ama eğer pencerelerdeyseniz, mongo için ayrı bir konsol penceresi ve uygulama için ayrı bir tane kullanmanız gerekiyor.

Windows'ta çalışıyorsanız, muhtemelen mongodb çalıştırmak için package.json komut dosyalarımı kullanırım ve mongod kısmından node index.js yazmak daha kolay olduğundan başka bir terminalde uygulamanızı çalıştırırdım.

+0

Teşekkür ederim Chris. Bir javascript dosya türünde benzer düğüm startdatabase.js türünde "mongod - dbpath verileri" yapmak için bir stat var mı. – WhatisSober

+0

@WhatisSober Bu durumda, package.json dosyasını yapılandırarak ve uygulama için ayrı bir pencere çalıştırmaktansa daha sıkıcı olduğumu düşündüğüm komut satırı argümanlarıyla bir işlem yürütmelisiniz. Sadece Windows - fork bayrağı sunmuyor ki üzücü. – Hristo

1

Pencere servis olarak çalışmak için set-up mongo, her zaman mongo açık ve dev makine üzerinde son 3 yıldır çalıştı. Dağıtım makinesinde bir daemon tarafından kontrol edilecek mongo ayarlayın.

"scripts": { 
    "prestart": "start mongod --config ./data/mongod.cfg", 
    "start": "node ./server/bin/www", 
    "poststart": "start mongo admin --eval \"db.getSiblingDB('admin').shutdownServer()\"", 
    "pretest": "start mongod --dbpath data", 
    "test": "mocha test", 
    "posttest": "start mongo admin --eval \"db.getSiblingDB('admin').shutdownServer()\"" 
}, 

iyi şanslar:

İlgili konular