typescript - 使用 fast-csv 如何处理数据无效,如何访问错误对象?
问题描述
使用fast-csv 还支持异步验证,回调示例位于
如何访问“数据错误”事件中的错误?
validate 事件有一个回调,原型为 error、boolean、string。
.validate((row: Winner, processValidationError): void => {
const valid = /^[a-zA-Z0-9\\]*$/.test(row.groupId);
if (valid) {
return processValidationError(null, false,'ok' )
}
// Error, boolean, reason: string
const error = new WinnerValidationError("Failed to read groupId", 'groupId')
return processValidationError(error, true,'groupId is invalid');
})
}
在数据无效时,原型是行,行号字符串并且没有错误
.on('data-invalid', (row, rowNumber: number, reason: string) => {
console.log(error.message + error.key, `Invalid [rowNumber=${rowNumber}]
[row=${JSON.stringify(row)}] [reason=${reason}]`)
processValidationError(row,rowNumber,reason)
})
解决方案
错误作为第三个参数(原因)传入:
.on('data-invalid', (row, rowNumber, reason) => {
console.log(`Invalid row ${rowNumber}: ${reason}`);
})
如果您抛出错误而不是字符串(这是一种很好的做法),您可以按如下方式访问它:
.on('data-invalid', (row, rowNumber, error) => {
console.log(`Invalid row ${rowNumber}: ${error.message}`);
})
推荐阅读
- javascript - 为什么 sassmeister 和本地环境的计算结果不同?
- javascript - 和有什么区别
并在 React Router 中的“路径”之前放置“精确”? - java - 多个表可以有相同的组合键吗?Spring Boot + Spring Data JPA + Oracle
- git - 我的整个笔记本电脑是 git 中未跟踪的文件
- label - Prometheus:防止在标签更改时开始新的时间序列
- scala - IntelliJ IDEA 在升级到 2019.3.3 后停止为 Scala 项目提供 Run... 命令
- javascript - 过滤掉日期返回空白数组
- r - 收敛问题 glmer:如何解释 allFit 结果并比较具有不同优化器的模型
- javascript - 开始使用 amMaps
- java - 如何从另一个类访问 DefaultTableModel