Правильный способ запуска 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 data​​strong > и 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