sql >> データベース >  >> NoSQL >> MongoDB

Node js POSTリクエストエラーエラー[ERR_HTTP_HEADERS_SENT]:クライアントに送信された後にヘッダーを設定できません

    これは、応答を2回送信しているために発生しています。したがって、エラー:

    Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    

    コードを次のように変更します:

    router.post('/user', VerifyToken, function (req, res) {
    User.findOne({ username: req.body.username }, function (err, user) {
        if (user) return res.status(400).send({status: 'ko', error: { msg: 'The username you have entered is already associated with another user.'}});
    
        var hashedPassword = bcrypt.hashSync(req.body.password, 8);
        User.create({
            firstname:req.body.firstname,
            surname:req.body.surname,
            username:req.body.username,
            email: req.body.email,
            password: hashedPassword,
            farmId: req.body.farmId,
            roles: req.body.roles,
            isVerified : req.body.isVerified,
            statusUser : req.body.statusUser
            },
            function (err, user) {
                if (err) return res.status(500).send("There was a problem adding the user to the database.");
    
    
                var client = nodemailer.createTransport(sgTransport(options));
    
                var email = {
                    from: '[email protected]',
                    to: req.body.email,
                    subject: 'Registration successfully confirmed',
                    text: 'Hi '+ req.body.username + ',\n\nyour account has been registered.\n\nAre you the farm owner?' +
                    '\n\nPlease go to this link [CMS link] to create your Profile and start to use the App Plus!\n\n'+
                    'If you are a simple user, please just use your credentials to login to the App Plus section into the new App!\n\n'+
                    'Download for free from App Store or Google Play!\n\nRegards,\n\nTrelleborg TLC Plus team'
                };
    
                client.sendMail(email, function(err, json){
                    if (err){
                        return res.status(500).send({ msg: err.message });
                    }
    
                   res.status(200).send({status: 'ok', data: { msg: 'A verification email has been sent to ' + user.email + '.'}, message: 'User saved.'} )
    
                });
    
            });
    
    });
    
    });
    


    1. MongoDB:データストアを別の別のMongoサーバーで再度使用できますか?

    2. パラメータを使用して関数からマングースでクエリを作成するにはどうすればよいですか?

    3. Javaドライバーを使用してMongoDBの$またはクエリを作成するにはどうすればよいですか?

    4. StackExchange.Redisを使用したRedisTimeoutExceptionのバースト