Node.js nodejs+;if express的ejs返回意外捕获
我确信这很愚蠢,但我不能让它为我的生活工作,我只想做一个简单的for语句,在ejs上有一个if-inside,但它在express中不断返回一个意外的catch事件 为了设置场景,我有一个JSON,它使用ejs作为模板渲染器在nodejs中设置注册表单,假设我有以下代码:Node.js nodejs+;if express的ejs返回意外捕获,node.js,backbone.js,ejs,Node.js,Backbone.js,Ejs,我确信这很愚蠢,但我不能让它为我的生活工作,我只想做一个简单的for语句,在ejs上有一个if-inside,但它在express中不断返回一个意外的catch事件 为了设置场景,我有一个JSON,它使用ejs作为模板渲染器在nodejs中设置注册表单,假设我有以下代码: var userData:{ "username":"User name", "email":"johndoe@gmail.com", "password":"Please en
var userData:{
"username":"User name",
"email":"johndoe@gmail.com",
"password":"Please enter Password",
"birthdate":"date"
}
我有一个ejs文件
<h1 id="page-title"><%= title %></h1>
<div id="list">
<form action="user/create/" method="post" accept-charset="utf-8">
<div class="item-new">
<% for (var key in userData){ %>
<% if(key != 'birthdate'){ %>
<input class="input" type="text" name="<%= key %>" placeholder="<%= userData[key] %>"/>
<% }else{ %>
//do something
<% } %>
</div>
//做点什么
我尝试预先定义一个变量并检查定义的值如果您提供的示例确实是所有代码,那么您没有关闭所有标记,特别是,您没有关闭for循环、div或表单。当我关闭所有这些时,视图将为我呈现,不会出现错误。这是我使用的ejs:
<!DOCTYPE html>
<html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style-min.css' />
</head>
<body>
<h1 id="page-title"><%= title %></h1>
<div id="list">
<form action="user/create/" method="post" accept-charset="utf-8">
<div class="item-new">
<% for (var key in userData){ %>
<% if(key != 'birthdate'){ %>
<input class="input" type="text" name="<%= key %>" placeholder="<%= userData[key] %>"/>
<% } else{ %>
<% } %>
<% } %>
</div>
</form>
</div>
</body>
</html>
当我使用上述方法时,我得到以下结果:
好的,我想我可能已经找到了答案。。。似乎因为我从一个外部文件解析我的json,我无法访问它的密钥,所以我重新编写了这个示例并应用了:var obj=userData.toJSON(userData);我将检查这个实际案例的更新,如果它有效,我将在这里发布整个代码。谢谢!,我发布的代码是一个浓缩版本,目的是让大家了解我的想法,我的问题是在引用外部JSON时。谢谢你,我的朋友。
exports.test = function(req, res){
res.render('test', { title: 'nodejs + ejs for if express returns a unexpected catch', userData:{
"username":"User name",
"email":"johndoe@gmail.com",
"password":"Please enter Password",
"birthdate":"date"
}});
};