node.js - 使用 Gulp 管理打开和关闭 MongoDB

标签 node.js mongodb gulp nodemon

到目前为止,我有一个执行'mongod --dbpath db'的child_process和另一个可以用'mongod --dbpath db --shutdown'杀死它的child_process。如何监听用户输入 ctrl-c 或退出 gulp runner,然后运行 ​​gulp 任务关闭 mongo?

最佳答案

我正在尝试类似的东西并遇到了 this answer .我对它进行了一些重构,使其成为运行命令功能。从功能上讲,--shutdown 和我正在使用的命令之间应该没有区别。

var gulp = require('gulp');
var exec = require('child_process').exec;

function runCommand(command) {
  return function (cb) {
    exec(command, function (err, stdout, stderr) {
      console.log(stdout);
      console.log(stderr);
      cb(err);
    });
  }
}

//Running mongo
//https://stackoverflow.com/a/28048696/46810
gulp.task('start-mongo', runCommand('mongod --dbpath ./data/'));
gulp.task('stop-mongo', runCommand('mongo --eval "use admin; db.shutdownServer();"'));
gulp.task('start-app', runCommand('node app.js'));

关于node.js - 使用 Gulp 管理打开和关闭 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28665395/

相关文章:

javascript - 在reduce 和fetch 中fs.writeFile 出现问题

javascript - PassportJS 没有将注册数据传递到数据库,可能是数据库连接问题

mongodb 中的 JavaScript getTime()

MongoDB MapReduce 每个键有很多次emit()

node.js - 用于 Gulp 配置的 Vinyl FTP

node.js - 如何在 Node 中将 app.listen 与 Socket.io 一起使用?

node.js - 流式传输数据并写入 MongoDB

node.js 错误 : Cannot find module 'lodash.assign'

node.js - Windows 上的 Jenkins + Grunt = 持续的 EBUSY 和 ENOENT 错误

javascript - hbsfy 在编译时输出 hbsfy 代码 - 使用 Gulp + Browserify