[MissingUsernameError]: не было присвоено имя пользователя Mongoose

#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'})