将值从路由器传递到节点js中的视图

时间:2017-04-21 05:32:53

标签: node.js

我正在尝试将消息从路由器传递到我的ejs视图索引。但是当我在浏览器上加载视图时,它说对象键是未定义的

    if(data != null){
        if(data.name == req.body.name){
            res.render('index', {err: 'The name already exist'});
        }
    }

这是声明,我试图在用户点击提交按钮

时显示此错误

这是我用来显示错误的EJS模板代码

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
<h1>Add names</h1>
<p>Enter your name to add it into a database</p>
<form method="POST" action="/names">
    <input type="text" name="name" placeholder="Enter Name here" required/>
    </br>
    <input type="submit"/>
</form>
<%for(var i = 0; i < data.length; i++){%>
    <p>This is your name: <%=data[i].name%></p>
<%}%>

<p><%=err%></p>

</body>
</html>

错误显示为(错误未定义)

谢谢

1 个答案:

答案 0 :(得分:1)

您需要检查解析到ejs模板的变量或值的存在。在EJS模板上,尝试以下更改

    <%if(typeof(data) != 'undefined'){for(var i = 0; i < data.length; i++){%>
        <p>This is your name: <%=data[i].name%></p>
    <%}}%>

    <%if(typeof(err) != 'undefined'){%>
<p><%=err%></p>
<%}%>

干杯!