NodeJS,Express – 将EJS视图渲染到下载文件
我有典型的使用EJS模板的NodeJS,Express 3应用程序。 我有一个path,使包含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'预览'视图模板?
感谢您的任何build议!
PS – 我也使用Mikeal的请求是这个相同的应用程序。 我想知道是否有一种方法,我可以使用pipe道(文件系统),然后强制下载保存的文件?
请参阅: 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}); });