node.js - 检索node.js child_process的结果

标签 node.js

我无法理解 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});
  });
});

关于node.js - 检索node.js child_process的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6394072/

相关文章:

PHP 向 Node/Socket.IO 服务器发送消息

mysql - 如何将命令 mysqlx 导入到我的 React 应用程序中?

javascript - Node.js - 浏览器化 : Error on parsing tar file

javascript - 为什么当我需要全局数组索引时未定义它?

node.js - Cognito 身份验证后自定义响应

node.js - 如何使用 Neo4j 驱动程序按需中止查询

javascript - 重新运行 javascript 代码而无需再次编写

node.js - 我在安装 Cordova 时遇到错误

javascript - node.js - 如何 “emitter.setMaxListeners()” ?

javascript - Mongodb 查询 - 和条件