奇怪的exec问题 - stdout没有显示 - 回调无法正常工作

时间:2014-05-30 11:28:47

标签: javascript node.js exec child-process

奇怪的是,这个代码以前一直有效。 看来,当我现在运行以下时,我没有得到回调。没有控制台日志有效。但是如果我跑了" ls"而不是mongo例如它工作正常,类似如果我写像mongod -gfsssl(应该显示错误)我确实得到一个错误。此外,如果我在终端中运行与下面相同的命令,它运行正常。

var sys = require('sys');
var exec = require('child_process').exec;
var nodemon = require('nodemon');

exec('mongod --dbpath="./data"', function(error, stdout, stderr) {
    console.log(stderr);
    console.log(error);
    console.log(stdout);

    nodemon({
        script: 'app/server.js',
        ext: 'js'
    });

    nodemon.on('start', function () {
        console.log('App has started');
    }).on('quit', function () {
        console.log('App has quit');
    }).on('restart', function (files) {
        console.log('App restarted due to: ', files);
    });
});

1 个答案:

答案 0 :(得分:1)

执行该命令后,您确定mongod将自己置于后台吗?听起来它正在前台运行,导致进程永不退出(这就是为什么你的回调永远不会被调用)。