我有一些看起来像这样的代码
try {
return inputStream
.pipe(JSONStream.stringify())
.on('error', e => next(`Stringify error: ${e}`))
.pipe(Json2csvTransform)
.on('error', e => next(`json2csv error: ${e}`))
.pipe(res)
.on('finish', () => console.log("Streaming of file is now complete."))
} catch(error) {
return res.status(400).json({ message: msg('fileRetrievalError', -3) })
}
当我到达.on('error', e => next('json2csv error: ${e}'))
这个过程并没有落入catch
,它只是继续保持下去。我猜这是因为它被包裹在一个next
我终于能够提取的错误是:
Error: Data should not be empty or the "fields" option should be included
我试图挖掘节点模块中的源代码,但这对我来说意义不大。
我想我有两种可能的解决方案:要么我需要了解错误的Json2csv
含义,要么我需要能够退出并关闭我的流。我试图只是推return res.status(400).json({ message: msg('fileRetrievalError', -3) })
入回调.on('error;)
,但如果进程失败一次,它每次都会失败,直到会话结束,即使提供所有有效信息 - 如果这有意义..
我对节点知之甚少,而且这个包没有太多的支持。