2017-04-21 55 views
1

我试图从路由器传递消息到我的ejs视图索引。但是当我加载在浏览器中查看它说的对象密钥是不确定的从路由器传递值来查看节点js

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> 

错误表明我作为(ERR没有定义)

谢谢

+0

听起来像模板中的错误。你的模板是什么样的? –

+0

这是一个ejs模板,所以它有一个表单和一个输入字段。所以和最后一件事,我显示一些数据检索从数据库集合这是所有在模板视图 –

+0

发布代码可能会有所帮助。只有你的描述很难猜测发生了什么。 https://stackoverflow.com/help/mcve –

回答

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

干杯!

+0

#prophp它成功地工作谢谢你 –