我正在尝试通过child_process
模块执行命令并将结果响应到客户端浏览器,如下所示,console.log(stdout)
工作查找,但response.write()
无法正常工作。
function start(response) {
dir_list(function(stdout) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write(stdout);
console.log(stdout);
response.end();
});
function dir_list(callback) {
var exec = require('child_process').exec
child = exec('ls -la', function(error, stdout, stderr) {
callback(stdout);
});
}
以上代码由我引用,我所参考 Node.js: Object value as stdout of child_process.exec,但是,不幸的是,它对我不起作用。
顺便说一下,我原来的代码是: function start(response) {
console.log("Request handler 'start' was called.");
var exec = require('child_process').exec;
exec("ls -lah", function (error, stdout, stderr) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write(stdout);
console.log(stdout);
response.end();
});
答案 0 :(得分:1)
您的代码在}
函数末尾缺少关闭start
。
function start(response) {
dir_list(function(stdout) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.write(stdout);
console.log(stdout);
response.end();
});
}
function dir_list(callback) {
var exec = require('child_process').exec
child = exec('ls -la', function(error, stdout, stderr) {
callback(stdout);
});
}