【发布时间】:2018-03-29 18:25:23
【问题描述】:
我有以下代码。
router.post('/',function(req, res, next) {
var id=req.body.id;
console.log(id);
const testscript = exec('sh script.sh');
testscript.stdout.on('data', function(data){
console.log(data);
// sendBackInfo();
});
testscript.stderr.on('data', function(data){
console.log(data);
// triggerErrorStuff();
});
res.redirect('/Visualise');
});
我需要完全执行我的 shell 脚本,然后重定向到“/Visualise”。下一页的部分代码使用了 shell 脚本生成的输出文件。它在完全执行 shell 脚本之前重定向,我收到一个文件未找到错误。 我怎样才能同步执行。请在上述代码中进行必要的更改以执行此操作。谢谢。
【问题讨论】:
-
将
res.redirect('/Visualise');移动到testscript.stdout.on块 -
请阅读副本并自行进行所需的更改:) 问题并非 100% 相同,但请阅读答案,您会发现适用的原则完全相同。
-
你可以使用 Promise 或 await。
标签: javascript node.js express async-await