[英]NodeJS crashes after sometime of leading a csv file
我一直在研究一个在读取 csv 时输出 xml 的项目,我使用fs.createReadStream()
方法读取 csv 文件,但过了一段时间,终端就崩溃了。
我得到
C:\Users\username\Documents\Programming\Node Projects\DAE Parser\main.js:13
row["Value"].includes("tri") ||
^
TypeError: Cannot read property 'includes' of undefined
它不会读取整个文件。
这就是我正在做的
fs.createReadStream("test.csv")
.pipe(csv())
.on("data", row => {
if (
row["Value"].includes("tri") ||
row["Value"].includes("vt") ||
row["Value"].includes("vx") ||
row["Value"].includes("vn")
) {
console.log(row)
}
})
您的row["Value"]
未定义,您可以添加一个条件来检查它是否为假
fs.createReadStream("test.csv")
.pipe(csv())
.on("data", row => {
if (row["Value"] && (
row["Value"].includes("tri") ||
row["Value"].includes("vt") ||
row["Value"].includes("vx") ||
row["Value"].includes("vn")
)) {
console.log(row)
}
})
在以下情况下,您的代码很容易受到攻击:
row
不是 objectrow["Value"]
不存在或不是数组。如果您想在任何特定行中完全安全地对抗这些,那么您可以这样做:
fs.createReadStream("test.csv")
.pipe(csv())
.on("data", row => {
if (typeof row === "object") {
let arr = row.Value;
if (arr && Array.isArray(arr) && (
arr.includes("tri") ||
arr.includes("vt") ||
arr.includes("vx") ||
arr.includes("vn")
)) {
console.log(row);
}
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.