我正在使用 Node/Express(最新的生产版本)
我有一个收集新帐户信息的表格。用户可以添加用户名等。
在视图处理程序中,我检查 mongodb 数据库以查看用户名是否唯一。如果不是,我会生成一条消息并重新加载原始视图。由于原始请求是一个帖子,因此用户发布的所有数据都在 req.body 中。我想添加用户在响应中提交的数据。我可以通过专门将每个值添加到响应中来做到这一点。但是没有更简单的方法可以将所有请求数据添加回响应吗?有没有办法在视图中呈现它(我正在使用 ejs)我尝试了 res.send(JSON) 和 ejs 变量。这样做会产生错误,指出变量不可用。
这是我的功能(忽略 users.createUser(req) - 它还没有完成):
createAccount: function(req, res, next){
users.createUser(req);
res.render('create_account', {
layout: 'secure_layout',
title: 'Create Account',
givenName: req.body.givenName,
username: req.body.username,
familyName: req.body.familyName
});
},
这是我的观点:
<form action="/createAccount" method="post">
<div>
<label>First Name:</label>
<input type="text" name="givenName" value="<%= givenName %>"/><br/>
</div>
<div>
<label>Last Name:</label>
<input type="text" name="familyName" value="<%= familyName %>"/><br/>
</div>
<div>
<label>Username:</label>
<input type="text" name="username" value="<%= username %>"/><br/>
</div>
<div>
<label>Password:</label>
<input type="password" name="password"/>
</div>
<div>
<input type="submit" value="Submit"/>
</div>
</form>
必须添加每个值似乎过于复杂。我尝试了 {body: req.body} 但从未将值添加到视图中。