【问题标题】:Express & csvtojson: "Unhandled rejection Error [ERR_STREAM_WRITE_AFTER_END]: write after end"Express & csvtojson:“未处理的拒绝错误 [ERR_STREAM_WRITE_AFTER_END]:结束后写入”
【发布时间】:2021-09-15 15:35:25
【问题描述】:

我正在尝试从 csv 文件中获取数据作为我服务器上的 json 对象:

const express = require('express');
const router = express.Router();
const csv = require('csvtojson');
const converter = csv({
    noheader: true,
    delimiter: ',',
    headers: ['date', 'time', 'point1', 'point2', 'point3', 'point4', 'point5']
});

router.get('/get-sample', (req, res) => { 
    converter.fromFile('./file.csv').then((jsonObj) => {
        res.send(jsonObj);
    });
});

现在我第一次发送请求时一切正常,但发送更多请求时出现此错误:

Unhandled rejection Error [ERR_STREAM_WRITE_AFTER_END]: write after end
at new NodeError (node:internal/errors:371:5)
at _write (node:internal/streams/writable:319:11)
at Converter.Writable.write (node:internal/streams/writable:334:10)
at ReadStream.ondata (node:internal/streams/readable:754:22)
at ReadStream.emit (node:events:394:28)
at addChunk (node:internal/streams/readable:315:12)
at readableAddChunk (node:internal/streams/readable:289:9)
at ReadStream.Readable.push (node:internal/streams/readable:228:10)
at node:internal/fs/streams:273:14
at FSReqCallback.wrapper [as oncomplete] (node:fs:660:5)

如果我使用 csv().fromFile 代替它可以工作,但我需要在转换器中设置选项。我该如何解决?

【问题讨论】:

  • 您的代码对我有用。我认为您的问题可能出在其他地方。
  • @ChristianFritz 我的错……我试着举一个最小的例子,然后就奏效了。问题似乎出在转换器上(我更新了问题)

标签: node.js express csvtojson


【解决方案1】:

它不是那么干净,但它有效:

router.get('/get-sample', (req, res) => { 
    csv({
        noheader: true,
        delimiter: ',',
        headers: ['date', 'time', 'point1', 'point2', 'point3', 'point4', 'point5']
    }).fromFile('./file.csv').then((jsonObj) => {
       res.send(jsonObj);
    });
});

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 2018-11-02
    相关资源
    最近更新 更多