Javascript 快速:下载返回空文件
每当我到达端点时,我总是得到空文件,而本地生成的文件是正确的,并且包含我需要的所有字段。我已尝试直接通过管道进行响应,但我会得到: 无法使用管道,不可读 当然,我可能做错了什么Javascript 快速:下载返回空文件,javascript,node.js,express,Javascript,Node.js,Express,每当我到达端点时,我总是得到空文件,而本地生成的文件是正确的,并且包含我需要的所有字段。我已尝试直接通过管道进行响应,但我会得到: 无法使用管道,不可读 当然,我可能做错了什么 不能将一个可写流通过管道传输到另一个可写流 您不能将一个可写流通过管道传输到另一个可写流 好的链接。非常感谢。是的,我创建了readStream,通过管道将其与附件连接到res让rs=fs.createReadStream(uu dirname+'/tmp/rates.csv')res.attachment(“rate
不能将一个可写流通过管道传输到另一个可写流
您不能将一个可写流通过管道传输到另一个可写流
好的链接。非常感谢。是的,我创建了readStream,通过管道将其与附件连接到res<代码>让rs=fs.createReadStream(uu dirname+'/tmp/rates.csv')代码>
res.attachment(“rates.txt”)代码>rs.pipe(res)代码>好链接。非常感谢。是的,我创建了readStream,通过管道将其与附件连接到res<代码>让rs=fs.createReadStream(uu dirname+'/tmp/rates.csv')代码>res.attachment(“rates.txt”)代码>rs.pipe(res)代码>而我找到了使用res.attachment
rs.pipe
的解决方法。我仍然想知道为什么下载方法不起作用。而我找到了res.attachment
rs.pipe
的解决方法。我仍然想知道为什么下载方法不起作用。
const PORT = 3000;
const express = require('express');
const fs = require('fs');
const csv = require('fast-csv');
const app = express();
app.listen(PORT, () => {
console.log(`Express server is listening on ${PORT}`);
});
app.get('/rates/csv', (req, res) => {
let ws = fs.createWriteStream(__dirname + '/tmp/rates.csv');
csv.write([
["a", "b"],
["a1", "b1"],
["a2", "b2"]
], {headers: true})
.pipe(ws);
console.log('FILE SAVED');
res.download(ws.path, 'rates.csv')
});