Node.js 将req值添加到响应以在Express View中呈现的快捷方式

Node.js 将req值添加到响应以在Express View中呈现的快捷方式,node.js,express,ejs,Node.js,Express,Ejs,我正在使用Node/Express(最新的生产版本) 我有一个收集新帐户信息的表格。用户可以添加用户名等 在视图处理程序中,我检查mongodb数据库以查看用户名是否唯一。如果不是,我将生成一条消息并重新加载原始视图。由于原始请求是post,因此用户发布的所有数据都在req.body中。我想添加用户在响应中提交的数据。我可以具体地将每个值添加到响应中。但是,难道没有更简单的方法将所有请求数据添加回响应吗?有没有一种方法可以在视图(我使用的是ejs)中呈现,我尝试了res.send(JSON)与e

我正在使用Node/Express(最新的生产版本)

我有一个收集新帐户信息的表格。用户可以添加用户名等

在视图处理程序中,我检查mongodb数据库以查看用户名是否唯一。如果不是,我将生成一条消息并重新加载原始视图。由于原始请求是post,因此用户发布的所有数据都在req.body中。我想添加用户在响应中提交的数据。我可以具体地将每个值添加到响应中。但是,难道没有更简单的方法将所有请求数据添加回响应吗?有没有一种方法可以在视图(我使用的是ejs)中呈现,我尝试了res.send(JSON)与ejs变量结合。这样做会产生错误,说明变量不可用


这是我的函数(忽略users.createUser(req)-它尚未完成):

以下是我的观点:

<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},但从未将值添加到视图中

我不太确定您想要的是什么,但是如果您想使用请求正文中的数据呈现ejs视图,您可以按照以下方式进行操作:

app.post('/foo', function(req, res, next) {
  res.render('view', {body: req.body});
});
view.ejs:

<ul>
<% for(var key in body) { %>
  <li><%= key %>: <%= body[key] %></li>
<% } %>
</ul>
  • :

谢谢。我添加了额外的信息。这不完全是我想要的,但给了我一个好主意如何做我想要的。我只是在寻找一种方法,将请求主体已经附加的数据添加到响应中,然后从响应中提取数据。我想我们应该做这个把戏。
<ul>
<% for(var key in body) { %>
  <li><%= key %>: <%= body[key] %></li>
<% } %>
</ul>