在ExpressJS中命中路由时返回动态创建的.js文件

时间:2015-04-22 22:30:32

标签: javascript express

我正在构建一个ExpressJS应用程序,我希望它在路由被命中时返回动态创建的.js文件。此路由将由html <script>标记使用。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

您需要将它作为客户端上的文件并不意味着它也必须是服务器端的文件。 为您想要的文件编写路由,并从处理程序返回动态创建的脚本。

router.get("/public/js/notafile.js", function(req, res) {
    // This doesn't have to be a one liner
    res.send("function(){console.log('yey')}");
});

您可以使用模板,例如下划线模板或其他模板文件,并替换占位符以动态生成复杂函数。

如果您正在提供客户端期望在您的/ public文件夹下的文件,您可能希望在静态绑定之前绑定它。 I. E.之前:

app.use(express.static(__dirname + '/public'));