【发布时间】:2014-07-29 03:49:28
【问题描述】:
我有一个简单的 Express.js 路由:
app.get('/db/csv', function (req, res) {
db.users.find({}, { _id: 0 }, function (err, docs) {
var csv = /* compute from docs */;
res.setHeader('Content-disposition', 'attachment; filename=users.csv');
res.send(csv);
});
});
我使用此路由下载我的“用户”数据库的 CSV 版本。设置Content-disposition HTTP 响应标头将触发浏览器中的“另存为...”对话框。
我还应该设置Content-Length 标头吗?我在一个例子中看到过,我不确定这里是否需要它。如果需要,我将如何从 csv 变量(这是一个 JavaScript 字符串)计算大小值?
(顺便说一句,浏览器中的功能在没有Content-Length 的情况下工作。)
【问题讨论】:
-
要计算字符串的字节长度,请使用:
Buffer.byteLength(sData, [sEncoding])。sEndcoding默认为 utf-8。
标签: javascript node.js http express