错误:数据不应为空,或应包含“字段”选项

时间:2018-10-17 03:58:22

标签: javascript node.js json2csv

我有一些看起来像这样的代码

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;)的回调中,但是如果该过程一次失败,则每次会话都将失败,直到会话结束,即使在提供所有有效信息的情况下也是如此-如果这有意义..

我对节点一无所知,并且该软件包没有很多支持。

1 个答案:

答案 0 :(得分:0)

如果要在处理特定错误后停止处理流,则必须抛出错误:

.on('error', e => throw error.message)