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}); });