为了账号安全,请及时绑定邮箱和手机立即绑定

node.js同步执行系统命令

node.js同步执行系统命令

梵蒂冈之花 2019-10-08 14:29:59
我需要在node.js函数中result = execSync('node -v');它将同步执行给定的命令行并返回该命令文本的所有标准输出。ps。同步是错误的。我知道。仅供个人使用。
查看完整描述

4 回答

?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

Node.js(从0.12版本开始-已有一段时间)支持execSync:


child_process.execSync(command[, options])

您现在可以直接执行以下操作:


const execSync = require('child_process').execSync;

code = execSync('node -v');

它会做您期望的。(默认将I / O结果通过管道传递给父进程)。请注意,您spawnSync现在也可以。


查看完整回答
反对 回复 2019-10-08
?
MYYA

TA贡献1868条经验 获得超4个赞

使用ShellJS模块。


exec函数,不提供回调。


例:


var version = exec('node -v').output;


查看完整回答
反对 回复 2019-10-08
?
MM们

TA贡献1886条经验 获得超2个赞

node.js中有一个出色的流控制模块,称为asyncblock。如果适合您的情况将代码包装在函数中,则可以考虑以下示例:


var asyncblock = require('asyncblock');

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


asyncblock(function (flow) {

    exec('node -v', flow.add());

    result = flow.wait();

    console.log(result);    // There'll be trailing \n in the output


    // Some other jobs

    console.log('More results like if it were sync...');

});


查看完整回答
反对 回复 2019-10-08
  • 4 回答
  • 0 关注
  • 1615 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信