这是我的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"。
没有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。错误,错误将是 错误。错误属性将是孩子的退出代码 流程何时错误。信号将设置为终止的信号 过程。除0以外的任何退出代码都被认为是错误。
(https://nodejs.org/api/child_process.html#child_process_child_child_process_execfile_file_args_options_callback(
execFile
的回调获取3个参数:
-
error
,如果有。 -
stdout
,过程的stdout。 -
stderr
,该过程的stderr。
因此,通过检查stderr
,您应该能够达到预期的结果:
var exec = require('child_process').execFile
exec('./script.py',(err,stdout,stderr)=>{console.log(stderr)})
在node.js docs