将变量从nodejs传递到ejs文件

时间:2017-10-09 12:30:04

标签: javascript jquery node.js ejs

我有一个我想从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');

3 个答案:

答案 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"错误

尝试将constlet置于其前面:

const nbrow = result.length;

答案 2 :(得分:0)

 <script>
 var nbrow = JSON.parse('<%- JSON.stringify(nbrow) %>');
 if(nbrow == 0)
     alert("user not exist");
 </script>

我通过stringify变量并将其解析回来