【发布时间】:2016-12-11 20:08:05
【问题描述】:
我一直在尝试让一个快速应用程序以流的形式发送响应。
var Readable = require('stream').Readable;
var rs = Readable();
app.get('/report', function(req,res) {
res.statusCode = 200;
res.setHeader('Content-type', 'application/csv');
res.setHeader('Access-Control-Allow-Origin', '*');
// Header to force download
res.setHeader('Content-disposition', 'attachment; filename=Report.csv');
rs.pipe(res);
rs.push("USERID,NAME,FBID,ACCOUNT,SUBSCRIPTION,PRICE,STATE,TIMEPERIOD\n");
for (var i = 0; i < 10; i++) {
rs.push("23,John Doe,1234,500,SUBSCRIPITON,100,ACTIVE,30\n");
}
rs.push(null);
});
当我将“rs.pipe(res)”替换为“rs.pipe(process.stdout)”时,它会在控制台中打印。但是如何让它在快递应用中运行呢?
Error: not implemented
at Readable._read (_stream_readable.js:465:22)
at Readable.read (_stream_readable.js:341:10)
at Readable.on (_stream_readable.js:720:14)
at Readable.pipe (_stream_readable.js:575:10)
at line "rs.pipe(res);"
【问题讨论】:
-
你需要继承
Readable,它需要有一个_read方法。但为什么不直接使用res.write(...)? -
我将如何在这里使用 res.write()?
标签: javascript node.js csv express