javascript - 错误:数据不应为空或应包含“字段”选项
问题描述
我有一些看起来像这样的代码
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;)
,但如果进程失败一次,它每次都会失败,直到会话结束,即使提供所有有效信息 - 如果这有意义..
我对节点知之甚少,而且这个包没有太多的支持。
解决方案
如果要在处理特定错误后停止处理流,则必须抛出错误:
.on('error', e => throw error.message)
推荐阅读
- firebase - pubspec.yaml:在添加 cloud_firestore 时解析块映射时需要一个键
- javascript - 如何使用 Arr.reduceRight 计算数组最后 n 个元素的总和
- tensorflow - “未找到图形定义文件” - TensorBoard 错误
- mysql - 从单独的 .sql 文件在 mysql 中创建数据库
- wordpress - 规范链接标签在 AMP Wordpress 模板网站中出现多次
- domain-data-modelling - 试图避免事实与事实的关系
- java - 为旧 Android 设备上的应用程序使用最新的库
- ios - 更新 GoogleTagManager Pod
- sql - 如何为从 SQL 中的两个日期列中提取的日期范围生成所有日期
- c - 免费 rtos 中 xTaskAbortDelay 函数的用途是什么?