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).
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!
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.
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.
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"},