Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用node、mongoose处理复选框_Javascript_Node.js_Forms_Post_Mongoose - Fatal编程技术网

Javascript 如何使用node、mongoose处理复选框

Javascript 如何使用node、mongoose处理复选框,javascript,node.js,forms,post,mongoose,Javascript,Node.js,Forms,Post,Mongoose,这是ejs文件,其表单通过循环数据库包含多个复选框输入。并发送post请求,然后由app.post <form action="/" method="post"> <% users.forEach(function(user) { %> <tr> <td style="text-align: center;&quo

这是
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>
但如果用户选中多个复选框,则返回一个列表。但是我不能在列表中循环多次,并且
res.render
,因为它会抛出一个已经发送的头错误。如何处理这个

    else {
        users.forEach(function(user) {
            User.findOne({"username":user}, function(err, foundUser) {
                if(err) {console.log(err)}
                else {
                    if(foundUser) {
                        
                    }
                }
            })
        })
我对网络开发还是新手。如果需要更多信息,请询问。谢谢。

请不要这样:

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 })
            }
        }
    })
} else {
    users.forEach(function(user) {
        User.findOne({ "username": user }, function(err, foundUser) {
            if (err) { console.log(err) } else {
                if (foundUser) {}
            }
        })
    })
}
使用以下命令:

// if users is string make it an array
if (typeof users == 'string')
    users = [users];

// then you only need a single User.find and no if/else statement
// use $in operator to find all users in one query
User.find({"username": { $in: users }}, function(err, foundUsers) {
    if(err) // render error page
        return res.render('500');

    res.render("queuedUsers", { users: foundUsers || [] });
})
// if users is string make it an array
if (typeof users == 'string')
    users = [users];

// then you only need a single User.find and no if/else statement
// use $in operator to find all users in one query
User.find({"username": { $in: users }}, function(err, foundUsers) {
    if(err) // render error page
        return res.render('500');

    res.render("queuedUsers", { users: foundUsers || [] });
})