我有一个使用EJS模板的NodeJS,Express 3应用程序。我有一个路由,可以“预览”包含已发布的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'预览'视图模板中使用这些?
P.S。 - 我也在使用Mikeal request
这个应用程序。我想知道是否有一种方法可以使用管道到fs(文件系统),然后强制下载保存的文件?
答案 0 :(得分:2)
请参阅: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});
});