在nodejs应用程序中使用express的JS文件中的EJS变量。

问题描述 投票:0回答:1

我有一个 user 物体具有 last_level 属性,我在我的快递路线中传递如下。

app.get('/game', (req, res) => {
    res.render('main.ejs', { user: req.user })
})

我想在我的JS脚本文件中访问它。

经过研究,我尝试了这个方法......。

var x = <%- user.last_level %>  

但是它没有工作(没有给我last_level的值来分配给variale x)。请帮我解决这个问题。

这是我的整个功能 -

window.onload = function () {
    var x = <%- user.last_level %> 
    if (x === "Easy") {
        console.log("easy")
    } else if (x === "Hard") {
        console.log("hard")
    } else if (x === "Pro") {
        console.log("pro")
    }
    console.log(x)
};
javascript node.js mongodb ejs
1个回答
1
投票

把你的变量字符串化,看看结果。在你的ejs模板中使用下面的代码

 <script>
    window.onload = function () {
            var x =  <%- JSON.stringify(user.last_level) %>
            if (x === "Easy") {
                console.log("easy")
            } else if (x === "Hard") {
                console.log("hard")
            } else if (x === "Pro") {
                console.log("pro")
            }
            console.log(x)
        };
    </script>

替代解决方案是

 <script>
    window.onload = function () {
      <% if (user.last_level == 'Easy') { %>
        console.log("easy")
      <% } else if((user.last_level == 'Hard')  { %>
        console.log("hard")
      <% } else if(user.last_level == 'Pro')  { %>
        console.log("pro")
      <% } %>
    };
  </script>
© www.soinside.com 2019 - 2024. All rights reserved.