我有一个使用EJS模板的NodeJS、Express3应用程序。我有一个路线,使‘预览’一些表单字段包含HTML和CSS张贴。它只是将它们插入并呈现我的preview.ejs
模板,如下所示。
app.post('/preview', function(req, res){
var htm = req.body.htm;
var css = req.body.css;
res.render('preview',{_layoutFile:'', htm:htm, css:css});
});
我现在想做的是一个类似的路线,强制下载文件,而不是…
app.post('/download', function(req, res){
var htm = req.body.htm;
var css = req.body.css;
// res.download or res.sendfile here ??
});
我看到有一个res.sendfile()
和res.download()
,但是我如何将这些与我的EJS“预览”视图模板一起使用呢?
附注。-我也在使用Mikeal的request
是同一个应用程序。我想知道是否有一种方法,我可以使用管道到fs(文件系统),然后强制下载保存的文件?
参见:http://expressjs.com/api.html#res.attachment
res.attachment()
设置content-disposition:attachment
头,它告诉浏览器将响应视为下载。
app.post('/download', function(req, res){
var htm = req.body.htm;
var css = req.body.css;
res.attachment();
res.render('preview',{_layoutFile:'', htm:htm, css:css});
});