我有一个我想从NodeJ传递到EJS文件的变量。 我需要这个变量来选择是否显示警告()。
在运行我的代码时,我已经" nbrow未定义"
server.js
con.query("SELECT * FROM entreprises WHERE identifiant =?",user, function (err, result) {
if (err) throw err;
console.log(result);
nbrow = result.length;
if(nbrow > 0)
{
res.send("Connexion info :" + user + " " + password);
}
else
{
res.render("connexion",{ nbrow: nbrow});
}
});
connexion.ejs
<script>
if(<%= nbrow %> = 0){
alert("user not exist");
}
</script>
我已经在互联网上搜索了我的代码可能有什么问题,但我找不到任何可以帮助我的东西。
我的&#34;如果&#34;我的查询工作正常,我已连接到我的数据库。
RE编辑:有人问我视图引擎配置,我真的不知道那是什么,但我猜这是:
app.set('views', './views');
app.set('view engine', 'ejs');
答案 0 :(得分:0)
您使用单=
代替==
应该是:
<script>
if(<%= nbrow %> == 0){
alert("user not exist");
}
</script>
此外 - 无论此特定错误。
EJS会呈现为html文件,因此在您的浏览器中,您始终可以使用&#39;查看来源&#39;并查看实际呈现的HTML。这样,如果问题出在打印nbrow
或脚本中,您可以进行调试。
答案 1 :(得分:0)
我的猜测是问题来自这一行:
nbrow = result.length;
这假设nbrow已在其他地方定义,但事实并非如此,因此"nbrow is not defined"
错误
尝试将const
或let
置于其前面:
const nbrow = result.length;
答案 2 :(得分:0)
<script>
var nbrow = JSON.parse('<%- JSON.stringify(nbrow) %>');
if(nbrow == 0)
alert("user not exist");
</script>
我通过stringify变量并将其解析回来