首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node/express将路由变量传递给javascript

Node/express将路由变量传递给javascript
EN

Stack Overflow用户
提问于 2018-08-12 19:12:59
回答 2查看 73关注 0票数 3

我正在尝试传递一个我传递给路由的对象,例如:

代码语言:javascript
复制
res.render('index', {myObj: myObj});

但是,如果我想要在索引页面中运行JS脚本,我应该如何访问脚本中的这个对象,我只是查看了一下,发现我可以使用ejs将其放入脚本中,例如:

代码语言:javascript
复制
var obj = "<%= myObj %>"

但我不能将脚本放在单独的文件中,因为它依赖于ejs。

将此参数传递给JS的正确方法是什么,以便我也可以将脚本放在单独的脚本文件中?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-12 19:37:39

正如我在评论中所说的,我总是在HTML文档的顶部定义要传递给客户端JS的值,如下所示,然后在定义之后加载使用这些变量的脚本:

代码语言:javascript
复制
<!doctype html>
<html>

<head>
  <script>
    /** constants from Express **/
    let myObj = <%- JSON.stringify(myObj) %>;
    //'-' must be used here not '=' after <% for it to work)
    let someString = "<%= someString %>";
  </script>
</head>

<body>
    ...
<script src="scripts/someJS.js"></script>
</body>

</html>

scripts/omeJS.js现在可以使用变量了。

票数 0
EN

Stack Overflow用户

发布于 2018-08-12 19:40:18

如果myObj是一个对象,则假定它是一个对象,则使用JSON.stringify()

代码语言:javascript
复制
<script>
    var myObj = <%- JSON.stringify(myObj) %>;
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51808237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档