Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用express的nodejs应用程序中JS文件中的EJS变量_Javascript_Node.js_Mongodb_Ejs - Fatal编程技术网

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

Javascript 使用express的nodejs应用程序中JS文件中的EJS变量,javascript,node.js,mongodb,ejs,Javascript,Node.js,Mongodb,Ejs,我有一个user对象具有last\u level属性 我在我的特快路线上经过它,如下所示: app.get('/game', (req, res) => { res.render('main.ejs', { user: req.user }) }) 我想在我的JS脚本文件中访问它 经过一些研究,我尝试了这个 var x = <%- user.last_level %> var x= 但它不起作用(并没有给我最后一个_级别的值来分配给变量x)。请帮我解决这个问

我有一个
user
对象具有
last\u level
属性 我在我的特快路线上经过它,如下所示:

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

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

经过一些研究,我尝试了这个

var x = <%- user.last_level %>  
var x=
但它不起作用(并没有给我最后一个_级别的值来分配给变量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)
};
window.onload=函数(){
变量x=
如果(x==“容易”){
console.log(“简单”)
}如果(x==“硬”){
控制台日志(“硬”)
}如果(x==“Pro”){
console.log(“pro”)
}
console.log(x)
};

将变量字符串化并查看结果。在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>

window.onload=函数(){
变量x=
如果(x==“容易”){
console.log(“简单”)
}如果(x==“硬”){
控制台日志(“硬”)
}如果(x==“Pro”){
console.log(“pro”)
}
console.log(x)
};
另一种解决办法是

 <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>

window.onload=函数(){
console.log(“简单”)
控制台日志(“硬”)
console.log(“pro”)
};

您应该尝试
var x=user.last\u level
不带标记。您的用户对象是否在脚本文件之前加载
var x=user.last_level
虽然如果它已经存在,为什么需要将它设置为变量?只是为了未来,但它不起作用是“描述”问题最糟糕的方式。它的给定
用户未在窗口中定义。onload
error@federico Moretti正在加载页面底部的脚本文件。用户对象由express传递@CracierJack您能否指定错误,因为我已经尝试并测试过了。它正在工作。您尝试了哪个解决方案。@IROCfor第一个
Uncaught SyntaxError:Unexpected token'这是我的路由调用代码
app.get('/game',(req,res)=>{res.render('main.ejs',{user:req.user})}
您应该在
脚本
标记中使用第一个解决方案。就像我在上面编辑的一样。因为我们使用的是
JSON.stringify
函数。由于编辑器中没有
ejs
支持,您可能正在观察红色代码。