Nodejs,Express如何传递变量来路由并在外部JavaScript文件中使用它?

时间:2016-06-06 13:31:32

标签: javascript jquery node.js express routing

我正在使用MongoDB Express NodeJS堆栈处理Web应用程序,并且在其中一个路径中,我从数据库获取数组,然后将其传递给路由。 代码:

app.get("/badges/new", function(req, res) {
    Colour.find({}, function(err, foundCoulours) {
        if(err){
            console.log("error: "+ err);
            res.redirect("back");
        } else {
            res.render("badges/new",{foundCoulours:foundCoulours})
        }
    });
});

所有这一切都很容易完成,但现在我有点困惑:我想使用jQuery根据服务器的结果在页面上添加元素。我可以在ejs文件上使用脚本标记和内联JS而没有任何问题,但我想要做的是使用外部JavaScript文件,这样我的ejs看起来不会像<script src="public/foo.js"></script>那样庞大。 问题:有没有办法在传递给路由后将 foundCoulours 传递给"public/foo.js"文件?或者我可以直接将其从请求路径传递给"public/foo.js"文件。

1 个答案:

答案 0 :(得分:0)

您可以按顺序加载脚本。如下:

<强>玉

body
script(type='text/javascript').
      var foundCoulours= #{foundCoulours}
script(type='text/javascript', src="foo.js")

<强> EJS

<script>
 var foundCoulours = <%= foundCoulours>
</script>
<script src="public/foo.js"></script>

<强>解释 由于我们在全局范围内加载foundCoulours变量,因此可以在foo.js中直接访问它,因为它是在初始化变量后加载的。