#node.js #mongodb #mongoose
#node.js #mongodb #mongoose
Вопрос:
У меня возникли проблемы с регистрацией пользователя в моей базе данных mongo. Когда у меня есть код, подобный приведенному ниже, он выдает ошибку [MissingUsernameError]: No username was given
Я попытался заменить на {email: req.body.email}
, {username: req.body.email}
однако это возвращает «Неверный запрос». Заранее спасибо
app.post("/register", function(req, res){
User.register({email: req.body.email}, req.body.password, function(err, user){
if (err) {
console.log(err);
res.redirect("/register");
} else {
passport.authenticate("local")(req, res, function(){
res.redirect("/");
});
}
});
});
Ответ №1:
попробуйте это:
const newUser = new User({
email: req.body.email,
password: req.body.password,
});
newUser
.save()
.then((result) => {
//console.log("Printing Result-->>", result);
res.status(httpStatusCode.CREATED).json({
success: true,
message: "Congratulations!! Successfully Created Account!!",
});
})
.catch((error) => {
// console.log("Error-->>", error);
res.status(httpStatusCode.INTERNAL_SERVER_ERROR).json({
success: false,
error: "Failed To Create New Account!! Try Again!!",
});
});
Ответ №2:
Обновление: я просмотрел документацию и добавил опцию, которая сделала так, чтобы имя пользователя не запрашивалось, а поле электронной почты было!
userSchema.plugin(passportLocalMongoose, {usernameField: 'email'})