如何在expressjs中包含单独的前端javascript文件?

时间:2018-04-29 10:12:31

标签: javascript node.js express backend

我有一个javascript文件,其前端逻辑代码超过200行,就像有人点击按钮,图像等游戏一样。

我无法弄清楚这一点。如何链接/包含,告诉expressjs将该文件用于前端逻辑而不仅仅依赖.ejs文件?

我不是要求module.exports从文件中导出特定部分。我希望导出整个文件。

请帮忙。

2 个答案:

答案 0 :(得分:0)

首先,您应该告诉您的静态文件所在的位置:

app.use(express.static(path.join(__dirname, 'yourFolder')));

然后在您渲染视图的路线中,您可以执行以下操作:

return res.render("yourView",{
       param1: param1,
       scripts: [
           'javascripts/yourFile.js'
        ]
});

'脚本'在ejs文件中无法访问数组。在footer.ejs中你可以这样做:

<% if ( typeof scripts !== 'undefined') { %>
    <% scripts.forEach(function(script){ %>
        <script src="/<%- script %>"></script>
    <% }); %>
<% } %>

答案 1 :(得分:0)

您还可以将文件中的<script>行更改为指向以下路径:

<script src="/filejs"></script>

然后在app.js中使用以下代码添加另一个名为/filejs的端点:

app.get('/filejs', function(req, res) {
res.sendFile(__dirname + '/folder/file.js') //change this to your file path
})