如何解决检索node.js child_process的结果
| 我无法绕过node.js的异步特性。让我们假设我想要一个执行\'ls \'命令并将结果(作为字符串)返回给浏览器的路由。使用child_process.exec将如何处理呢?以下是不正确的,但是按照我正在努力的方向进行:function dir_list() {
var sys = require(\'sys\');
var exec = require(\'child_process\').exec
child = exec(\'ls -la\',function(error,stdout,stderr) {
//I would like to return stdout but can\'t figure out how
return stdout;
});
return child;
}
app.get(\'/\',function(req,res){
res.render(\'index\',{
title: \'MyPage\',subtitle: \'Below is a directory listing\',results: dir_list()
});
这不是我的app.js的全部代码,但实际上我正在寻求有关dir_list()来将结果变量设置为\“ ls -la \”的输出的帮助。
解决方法
将回调传递到您的dir_list并使用ls -la结果调用它
function dir_list(cb) {
var sys = require(\'sys\');
var exec = require(\'child_process\').exec
child = exec(\'ls -la\',function(error,stdout,stderr) {
//I would like to return stdout but can\'t figure out how
cb(stdout);
});
}
app.get(\'/\',function(req,res){
dir_list(function(dir_list_output) {
res.render(\'index\',{
title: \'MyPage\',subtitle: \'Below is a directory listing\',results: dir_list_output});
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。