1

我有一个使用 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()and res.download(),但是如何将它们与我的 EJS“预览”视图模板一起使用?

PS - 我也在使用 Mikeal'srequest是同一个应用程序。我想知道是否有一种方法可以使用管道到 fs(文件系统)然后强制下载保存的文件?

4

1 回答 1

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});
});
于 2013-10-16T12:36:34.940 回答