【发布时间】:2020-04-29 09:42:45
【问题描述】:
我在google或其他地方一直没能找到答案,希望你能指导一下。
我有一个 node.js 应用程序调用一个有时会失败的可执行文件 (.exe),我的代码如下:
const converter = childProcess.spawn('converter.exe', [source, destination], options);
converter.stdout.on('data', (data) => {
});
converter.on('close', (code) => {
console.log(`Child process exited with code ${code}`);
});
converter.stderr.on('data', (data) => {
});
一切正常,但是当我得到一个标准错误时,我不知道如何获取消息,我记录了数据并得到了这个: 标准错误:
我可以使用.toString()得到一个字符串,字符串如下:
stderr: Traceback (most recent call last):
File "converter.pyw", line 23, in <module>
doc = word.Documents.Open(source_file)
_ctypes.COMError: (-2146822496, None, ('El archivo parece estar corrompido.', 'Microsoft Word', 'wdmain11.chm', 25272, None))
我现在的疑问是,是否可以只提取错误消息?在这种情况下,错误消息是 El archivo parece estar corrompido。
我什至尝试使用 JSON 对象来解析它,但我没有运气。
编辑:
当我控制.exe 文件的生成时,我将尝试使用除代码块之外的一些尝试(是的,它是 python 代码),但我不知道我是否仍会得到像 sterr: Traceback 这样的文本...我会编辑我一拿到结果就问这个问题。
【问题讨论】:
-
如果您可以编辑您的问题并将这些图像更改为实际的文本代码,那就太好了。
-
我是为字符串部分做的,因为缓冲区很大,我无法复制它
标签: node.js child-process stderr