Использование express. Я пытаюсь создать файл. js, который обрабатывает POST-запрос, чтобы проверить, существует ли пользователь перед вставкой в мою MongoDB. Я построил 2 подключения MongoClient для обработки разных случаев. Сначала нужно проверить, существует ли пользователь. Если пользователь не существует, он будет go для второго соединения. Я не могу понять, что я делаю неправильно
Код: `
router.post('/', function(req, res, next) {
console.log("inside post method profile")
ssn = req.session;
ssn.firstName = req.body.fname;
ssn.lastName = req.body.lname;
ssn.userEmail = req.body.email;
ssn.userPass = req.body.pass;
let userExists = false;
MongoClient.connect(url, function(err, db) {
if (err) throw err;
let dbo = db.db("projectOne");
let myInfoLog = {
email: ssn.userEmail,
pass: ssn.userPass
};
// TRYING TO COUNTERCHECK IF A USER ALREADY EXISTS
dbo.collection("userInfo").findOne(myInfoLog, function(err, data) {
if (data.email) {
userExists = true;
ssn.signUpError = "User email already exists";
console.log("data returns an active email");
db.close();
res.redirect('/');
}
});
});
if (userExists == false) {
MongoClient.connect(url, function(err, db) {
if (err) throw err;
let dbo = db.db("projectOne");
let myInfoLog = {
email: ssn.userEmail,
pass: ssn.userPass
};
let myInfo = {
fname: ssn.firstName,
lname: ssn.lastName,
email: ssn.userEmail,
pass: ssn.userPass
};
dbo.collection("userInfo").insertOne(myInfo, function(err, data) {
if (err) throw err;
console.log("collection inserted");
// console.log(data.ops[0].fname);
// console.log(data.ops[0].lname);
// console.log(data.ops[0].email);
// console.log(data.ops[0].pass);
ssn.firstName = data.ops[0].fname;
ssn.lastName = data.ops[0].lname;
ssn.userEmail = data.ops[0].email;
ssn.userPass = data.ops[0].pass;
console.log("welcome! " + ssn.firstName + " " + ssn.lastName)
db.close();
});
res.redirect('/profile');
});
}
});
module.exports = router;
Я получаю ошибку:
Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
at ServerResponse.setHeader (_http_outgoing.js:485:11)
at ServerResponse.header (C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\express\lib\response.js:767:10)
at ServerResponse.location (C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\express\lib\response.js:884:15)
at ServerResponse.redirect (C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\express\lib\response.js:922:18)
at C:\Users\rousb\Desktop\Internship2020\P_01\routes\profile.js:47:15
at executeCallback (C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\mongodb\lib\operations\execute_operation.js:70:5)
at handleCallback (C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\mongodb\lib\utils.js:128:55)
at C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\mongodb\lib\operations\find_one.js:29:9
at C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\mongodb\lib\utils.js:731:5
at C:\Users\rousb\Desktop\Internship2020\P_01\node_modules\mongodb\lib\cursor.js:251:9 {
код: 'ERR_HTTP_HEADERS_SENT'