- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 ubuntu 上使用 Node 18.7。我正在尝试将一堆 csv 文件解析为对象(使用 csv-parse),最终加载到数据库中。因为有很多这样的我决定尝试流,我想使用异步等待风格。
基于 Using async/await syntax with node stream ,我已将我的代码更改为
const { parse } = require('csv-parse');
const path = __dirname + '/file1.csv';
const opt = { columns: true, relax_column_count: true, skip_empty_lines: true, skip_records_with_error: true };
console.log(path);
const { pipeline } = require('node:stream/promises');
async function readByLine(path, opt) {
const readFileStream = fs.createReadStream(path);
const writeFileStream = fs.createWriteStream(__dirname + '/file2');
var csvParser = parse(opt, function (err, records) {
if (err) throw err;
});
await pipeline(readFileStream, csvParser, writeFileStream);
}
readByLine(path, opt);
当我运行该文件时,我得到:
TypeError [ERR_INVALID_ARG_TYPE]: The "chunk" argument must be of type string or an instance of Buffer or Uint8Array. Received an instance of Object
at new NodeError (node:internal/errors:387:5)
at _write (node:internal/streams/writable:315:13)
at Writable.write (node:internal/streams/writable:337:10)
at Parser.ondata (node:internal/streams/readable:766:22)
at Parser.emit (node:events:513:28)
at Readable.read (node:internal/streams/readable:539:10)
at Parser.<anonymous> (/home/gmail-username/node/maricopa/node_modules/csv-parse/dist/cjs/index.cjs:1357:28)
at Parser.emit (node:events:513:28)
at emitReadable_ (node:internal/streams/readable:590:12)
at process.processTicksAndRejections (node:internal/process/task_queues:81:21) {
code: 'ERR_INVALID_ARG_TYPE'
}
我该如何解决这个问题?
最佳答案
Reads from the csvParser
stream在 object mode .
安fs.writeStream需要将字符串/缓冲区写入其中。
一个简单的transform stream可以通过设置 writableObjectMode
选项将对象转换为 JSON 字符串:
class JsonTransform extends Transform {
constructor(opt) {
super(Object.assign({}, { writableObjectMode: true }, opt));
}
_transform(obj, enc, callback) {
let ret = JSON.stringify(obj) + '\n'
this.push(ret)
callback()
}
}
然后在解析 + 文件写入之间使用它。
const toJSON = new JsonTransform()
await pipeline(readFileStream, csvParser, toJSON, writeFileStream);
我相信 csv stringify 项目与编写 CSV 类似。
关于javascript - TypeError [ERR_INVALID_ARG_TYPE] 与 Node 管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73264306/
我正在尝试使用 Node js 服务将 .json 文件的内容获取到 angularjs 方法中。但是我得到以下错误: _http_outgoing.js:700 throw new ERR_INVA
我在服务器上收到一条错误消息:TypeError [ERR_INVALID_ARG_TYPE]:“key”参数必须是字符串类型或 ArrayBuffer、Buffer、TypedArray、DataV
我在输入 node 时遇到了此错误。启动程序。如果这是一个愚蠢的问题,我很抱歉,但我刚刚开始编码。我的代码有什么问题吗? 这是针对一个不和谐的机器人,我还没有在网上看到任何关于这个问题的信息。 con
我使用express框架开发了一个简单的node js登录应用程序。这是我的文件结构: 垃圾箱 www Node 模块 路线 上传 观看次数 app.js 当我尝试运行“npm start”时,它显示
我在 ubuntu 上使用 Node 18.7。我正在尝试将一堆 csv 文件解析为对象(使用 csv-parse),最终加载到数据库中。因为有很多这样的我决定尝试流,我想使用异步等待风格。 基于 U
当我的 Discord 机器人尝试在语音 channel 中播放 MP3 文件时遇到错误。 我的代码: if(message.member.voiceChannel){ const c
节点:v14.0.0 CLI 版本:2.3.2 GitBook 版本:3.2.3 视窗10 执行时 gitbook init在一个空文件夹中,它弹出: $ gitbook init warn: no
最近,我在尝试使用 NodeJS 和 request-promise 发出请求时遇到了问题. 以下代码嵌套在用于文件上传的 multer 调用中(使用嵌套函数/集群。 const option
嗨,我正在尝试按照Electron上的教程进行操作,但是尝试从我创建的菜单中打开文件时,我一直收到此错误。 未捕获的异常: TypeError [ERR_INVALID_ARG_TYPE]:“path
我这里有这个小问题: events.js:200 throw new errors.ERR_INVALID_ARG_TYPE('listener', 'Function', listener); ^
我正在尝试在本地计算机中运行 react 应用程序,运行时出现此错误npm 运行开始: > node scripts/start.js internal/validators.js:125 t
我正在使用 React 开发一个项目,遇到了一个让我困惑的问题。 每当我运行yarn start时,我都会收到此错误: TypeError [ERR_INVALID_ARG_TYPE]: The "p
尝试创建使用 webpack 捆绑的 JavaScript lambda。我当前的index.js 的结构如下: const AWS = require('aws-sdk'); const fs =
在下面的代码中,我得到了这个错误: TypeError [ERR_INVALID_ARG_TYPE]: The "original" argument must be of type Function
npm start 每当使用 ^2.0.0 版本的 mountebank 运行 mountebank 服务器时都会出现错误 TypeError [ERR_INVALID_ARG_TYPE]: The
我正在nodejs中编写一个lambda函数,用于将图像上传到S3存储桶。 在我的第一个 lambda 函数中,我已经内联编写了这个函数(直接在 AWS Lambda 编辑器中),并且它运行得非常好。
我正在尝试创建一个文件夹 view/circle,我将能够在其中渲染数组,但是当我执行 localhost:3001/views/circle 时,没有加载任何内容,而是在标题上收到错误... ...
我已经为此奋斗了一段时间。当我去运行npm run dev我收到下面列出的错误。我可以运行 webpack -mode dev它工作。不过,它会将输出直接放入我的 dest 目录中。这里是 GitHu
我们的构建环境目前使用 Node 12.19.0 和 npm 6.14.8。当我看到 Node 14.15.1(仍然是 npm 6.14.8)的新 LTS 版本可用时,我下载了它并运行了我们的 web
我被困在这里了一段时间我不明白这个问题。请有人在这个主题上启发我。这是代码。 const puppeteer = require('puppeteer'); (async() => { let
我是一名优秀的程序员,十分优秀!