web-dev-qa-db-fra.com

Comment faire pour démarrer mongodb et express?

J'ai une application qui fonctionne en mode express et qui communique avec mongodb. Voici comment je lance mon application:

1.Start Mongodb

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

2.Start Express

node server.js

Ma question est la suivante: existe-t-il un moyen de les combiner? Je sais que le noeud est à un seul thread, nous ne pouvons donc pas exécuter à la fois Express et Mongo à partir de server.js, mais quelle est la bonne manière? Est-il possible de démarrer mongo à partir d'un fichier javascript à l'aide de npm?

Modifier:

Je peux exécuter mongod --dbpath data et node server.js séparément sur deux commandes différentes Invite. Ma question est de les démarrer à partir d'un fichier (si possible).

16
WhatisSober

start crée un nouveau cmd dans windows voici ma config:

"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()\""
},

Bonne chance!

14
Peter

Si vous utilisez Linux, vous pouvez utiliser le fichier package.json pour définir des scripts qui répondent exactement à vos besoins.

Il y a aussi quelques problèmes: 

Si vous utilisez Linux, vous pouvez utiliser 

"mongod --fork --dbpath data --config mongo.conf" et "node index.js" pour utiliser mongodb et exécuter l'application en même temps, cela fonctionnerait parfaitement.

Mais si vous êtes sur Windows, vous devez utiliser une fenêtre de console distincte pour Mongo et une autre pour l'application. 

Si vous utilisez Windows, j'utiliserais probablement mes scripts package.json pour exécuter mongodb, puis mon application dans un autre terminal, car il est plus facile de taper node index.js que la partie mongod.

1
Christo

Configuré mongo pour fonctionner en tant que service Windows, je l'ai toujours et cela fonctionne depuis 3 ans sur ma machine de développement. Sur la machine de déploiement, configurez mongo pour qu’il soit contrôlé par un démon.

1
simon-p-r

essaye ça.

"scripts": {
"prestart": "start  \"mongoServer\" \"c:Program Files/MongoDb/Server/3.4/bin/mongod.exe\" &    start \"redis\" \"c:Program Files/Redis/redis-server.exe\"",
"start": "node app.js",
"stop": "Taskkill /IM mongod.exe  & Taskkill /IM redis-server.exe"},
0
EAS