Node.js ejs模板中的res.sendFile

Node.js ejs模板中的res.sendFile,node.js,express,ejs,Node.js,Express,Ejs,我想在express中的.ejs模板中使用res.sendFile <% //current media var cm = page.data.media; cm = cm || {}; var file = cm.file || {}; var ext = cm.thumbnail_url.substr(cm.thumbnail_url.lastIndexOf(".")); var options = { root

我想在express中的.ejs模板中使用res.sendFile

<%
    //current media
    var cm = page.data.media;    
    cm = cm || {};
    var file = cm.file || {};
    var ext = cm.thumbnail_url.substr(cm.thumbnail_url.lastIndexOf("."));

    var options = {
        root: __root,
        dotfiles: 'deny',
        headers: {
            'x-timestamp': Date.now(),
            'x-sent': true
        }
    };

    res.sendFile("uploads/thmb/media/" + cm._id.toString() + ext, options);
    res.end();
%>

这似乎是因为res.render已经发送了一些关于响应对象的信息。我是否可以使用ejs模板来发送文件?

能否解释一下为什么要从ejs模板而不是直接从路由处理程序运行代码?似乎您正在尝试在Express之上安装一个类似PHP的范例。您为什么要这样做?我甚至不知道这是怎么回事。你是在发送模板还是文件?下定决心,这有点复杂。假设所有东西在应用程序中都是通用的,我只能更改.ejs模板。在调用url/myapp/media/1234556时,我们希望传递一个图像,但ejs模板media.ejs会自动呈现并填充信息。
[Error: Can't set headers after they are sent.]
Error: Can't set headers after they are sent.