【问题标题】:Nodejs, Express How to pass variable to route and use it in external JavaScript file?Nodejs,Express如何将变量传递给路由并在外部JavaScript文件中使用它?
【发布时间】:2016-10-06 03:28:37
【问题描述】:

我正在使用 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" 文件。

【问题讨论】:

  • 老兄,真的是 Mango 或 Mongo!
  • 对不起,我的错。 Mongodb 与猫鼬

标签: javascript jquery node.js express routing


【解决方案1】:

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

翡翠

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 中直接访问,因为它是在变量初始化后加载的。

【讨论】:

  • 谢谢明天试试!现在想来,有道理!
  • 我们在脚本文件中使用之前加载 jQuery 库,因为它将 jQuery 暴露在全局范围内。 angularJS 和 rest 库也是如此。
猜你喜欢
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 1970-01-01
  • 2020-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-17
相关资源
最近更新 更多