我正在使用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"
文件。
答案 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中直接访问它,因为它是在初始化变量后加载的。