在node.js

时间:2016-09-20 19:20:33

标签: javascript node.js express pug

我使用node.jsexpress.jspug / jade

在我的服务器中,我使用变量pageId填充视图。

我在pug视图中使用此变量

script.
  document.addEventListener('DOMContentLoaded', function () {
    var pageId = '#{pageId}';

    (...)

问题在于我希望此脚本代码位于单独的文件中,而不是在我的视图中。

所以我想用

包含脚本
script(src='js/my_script.js')

但是我无法在脚本中获取变量的值。

这通常是怎么做的?将变量从服务器发送到客户端视图中的脚本代码似乎是错误的。

我想我使用pug.js是无关紧要的,因为即使在普通的html中也必须出现同样的问题。

1 个答案:

答案 0 :(得分:0)

您可以定义一个全局函数,在客户端JS文件中接收数据,然后从服务器呈现页面上的内联脚本调用该函数。

例如,在script.js

function logPageId(id) {
  console.log(id);
}

然后在服务器呈现的页面中:

<html>
  <body>
    <script src="script.js"></script>
    <script>
      logPageId('somePageId')
    </script>
  </body>
</html>

您可以使用JSON字符串作为输入。