我想使用sailsjs中的res.attachment()等文件向客户端发送文件。
我根本不想将文件存储在服务器上,我只是想不断生成它并将其发送给客户端。
例如,我的控制器看起来像这样
file: function(req, res, next) {
var name = req.param('name');
var data = 'Welcome Mr/Mrs ' + name
res.attachment(data, 'fileName.txt')
res.send()
},
一些问题
1)res.attachment似乎不接受文件名作为参数 2)发送的文件名称为" data"但文件中没有内容。
是否有人知道可用于执行此操作的其他功能?我不需要在文件中使用任何格式化等,但是必须生成它并将其发送回客户端并调用api端点?
答案 0 :(得分:0)
我找到了一种方法,通过将数据传递给res.attachment()我可以克服1& 2
var Readable = require('stream').Readable;
module.exports = {
file: function(req, res, next) {
var s = new Readable();
s._read = function noop() {}; // redundant? see update below
s.push("your text here\r\n")
s.push("next line text\r\n");
// s.push(null);
// res.attachment('test.csv');
// -> response header will contain:
// Content-Disposition: attachment
s.pipe(res.attachment('file.txt'))
// res.download(data,'fileName.csv');
res.send()
},