Gruntjs - 以特定顺序运行多个阻止任务(Mongo和Node.js)

dma*_*alu 5 shell terminal mongodb node.js gruntjs

我最近对Gruntjs表示了爱意,并且很高兴能抓住每一个机会让我的发展生活变得更加轻松.我目前正在编译我的SASS文件,运行手表,并使用nodemon来保持我的节点服务器更新,因为我在应用程序上工作.

所以这就是我早上开车疯狂的地方.我想在Node应用程序运行之前启动MongoDB.在Node应用程序的设置中,我检查数据库中的任何值,如果它是空的,则将充满信息的测试文件推送到表中.

我目前尝试使用grunt-concurrentgrunt-shell-spawn来运行必要的mongo和node命令.

grunt.initConfig({
  shell: {
    mongo: {
      command: 'mongo'
    },
    node: {
      command: 'node app.js'
    }
  },
  concurrent: {
    dev: {
      tasks: ['shell:mongo','shell:node'],
      options: { logConcurrentOutput: true }
    }
  }
});
grunt.loadNpmTasks('grunt-concurrent');
grunt.loadNpmTasks('grunt-shell-spawn');
Run Code Online (Sandbox Code Playgroud)

有没有办法确保mongo命令在运行节点任务之前达到"阻塞"状态?我猜这可以通过在setTimeout函数上运行节点任务异步来完成,但我不想一直等待看到开发过程中的更改生效.目前我一直在为数据库打开一个单独的shell选项卡,并且非常希望将它集成到Grunt中以将所有内容保存在一个地方.

我不确定它在大范围内的重要性,但是任何使用Node.js和MongoDB的人都会发现它非常有用.

谢谢

Pun*_*Cha -2

您可以间隔检查一下mongodb的服务端口是否可以访问?\