Правильный способ запуска mongodb и выражения?
У меня есть приложение, которое работает на экспресс и общается с mongodb. Вот как я запускаю свое приложение:
1.Start Mongodb
mongod --dbpath data --config mongo.conf"
2.Start Express
node server.js
Мой вопрос: есть ли способ их объединить? Я знаю, что node является однопоточным, поэтому мы не можем запускать как express, так и mongo из server.js, но что является правильным способом? Можно ли запустить mongo из файла javascript с помощью npm?
Edit:
Я могу выполнить mongod -dbpath datastrong > и node server.js отдельно в двух разных командных приглашениях. Мой вопрос состоит в том, чтобы запустить их из одного файла (если возможно).
Ответы
Ответ 1
start
создает новый cmd в окнах
вот моя конфигурация:
"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()\""
},
Удачи!
Ответ 2
Если вы работаете в Linux, вы можете использовать файл package.json для определения скриптов, которые делают именно то, что вам нужно.
Есть несколько вопросов altho:
Если вы используете Linux, вы можете использовать
"mongod --fork --dbpath data --config mongo.conf"
и "node index.js"
, чтобы использовать mongodb и запускать приложение одновременно, и это будет работать нормально.
Но если вы находитесь в окнах, вам нужно использовать отдельное консольное окно для монго и отдельное приложение.
Если вы работаете в Windows, я бы, вероятно, использовал мои скрипты package.json для запуска mongodb, и я запустил бы свое приложение в другом терминале, так как было проще набрать node index.js
, чем часть mongod.
Ответ 3
Настройка mongo для работы в качестве службы Windows, у меня всегда есть mongo, и он работал последние 3 года на моей машине dev. На машине развертывания установите mongo для управления демоном.
Ответ 4
попробуй это.
"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"},
Ответ 5
Да. Используя ваш package.json, вы можете определить скрипты:
{
"name": "my package",
"version": "1.0.0",
"scripts": {
"start": "mongod --dbpath data --config mongo.conf && node server.js",
},
"devDependencies": {
"express": "*"
}
}
Вызов npm start
выполнит запуск script, определенный в package.json
Подробнее см. https://docs.npmjs.com/misc/scripts