【发布时间】:2020-11-10 12:53:27
【问题描述】:
这是ejs文件,其表单包含多个复选框输入,通过循环访问数据库。并发送一个post请求,然后由app.post处理
<form action="/" method="post">
<% users.forEach(function(user) { %>
<tr>
<td style="text-align: center;">
<input type="checkbox" value="<%= user.username %>" name="username">
</td>
</tr>
<% }) %>
</form>
因此,当用户仅选中一个复选框时,可以通过 app.post() 上的此复选框进行处理:
users = req.body.username
if (typeof users == 'string') {
User.findOne({"username":users}, function(err, foundUser) {
if(err) {console.log(err)}
else {
if (foundUser) {
res.render("queuedUsers", {users: foundUser})
}
}
})
但如果用户选中多个复选框,则返回一个列表。但我不能多次循环列表和res.render,因为它会抛出一个已经发送的标头错误。这个怎么处理?
else {
users.forEach(function(user) {
User.findOne({"username":user}, function(err, foundUser) {
if(err) {console.log(err)}
else {
if(foundUser) {
}
}
})
})
我还是网络开发的新手。如果需要更多信息,请询问。谢谢。
【问题讨论】:
标签: javascript node.js forms post mongoose