将值从路由器传递到节点js中查看

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

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

这是声明,我试图显示这个错误,当用户点击提交button

这是用来显示错误的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> 

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

谢谢

您需要检查您parsing为ejs模板的variables或值的存在。 在您的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> <%}%> 

干杯!