这是我的python代码:
#!/bin/python
import sys
sys.exit(4)
这是我的JavaScript
var exec = require('child_process').execFile
exec('./script.py', (err, data) => { if(err) { console.log(err.status) } })
但是它不起作用,因为没有err.status之类的东西 我要在控制台日志中显示的是“ 4”。
答案 0 :(得分:2)
没有err.status
,但是有err.code
。
这应该有效:
var exec = require('child_process').execFile
exec('./script.py', (err, data) => { if(err) { console.log(err.code) } })
还有err.signal
和err.killed
从nodejs文档中:
成功后,错误将为null。发生错误时,错误将是的一个实例 错误。 error.code属性将是子级的退出代码 error.signal将被设置为终止的信号时进行处理 过程。任何非0的退出代码都被视为错误。
答案 1 :(得分:1)
execFile
的回调获得3个参数:
error
(如果有)。stdout
,流程的标准输出。stderr
,流程的标准。因此,通过检查stderr
,您应该能够获得预期的结果:
var exec = require('child_process').execFile
exec('./script.py',(err,stdout,stderr)=>{console.log(stderr)})
中查看