尝试在节点中创建一个简单的实用程序脚本来启动远程mongo shell。有没有办法在节点中运行它并退出到生成的shell?下面的脚本启动mongo shell一秒钟,然后退出并挂起。
var exec = require('child_process').exec;
var env_vars = require('./env_vars')('dev');
if(env_vars){
for (var key in env_vars){
process.env[key] = env_vars[key];
}
}
var mongo_url = process.env.MONGO_URL.replace('mongodb://', '');
var parse_url = mongo_url.split('@');
var parse_un_ps = parse_url[0].split(':');
var shell_login =
'mongo ' +
parse_url[1] +
' -u ' +
parse_un_ps[0] +
' -p ' +
parse_un_ps[1];
//console.log(shell_login);
exec(shell_login);
答案 0 :(得分:-1)
我认为使用带有stdio继承的child_process.spawn会导致你正在寻找的行为。
var spawn = require('child_process').spawn;
var node = spawn('mongo', [], { stdio: 'inherit' });
传入一个参数数组作为spawn()的第二个参数。
http://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options