как мне сделать форму входа для angular? - PullRequest
1 голос
/ 28 мая 2020

Я пытаюсь создать форму входа на свой сайт. Я использую agular, express и mongoDB

Вот мой контроллер функции входа в систему:

loginUser: (req, res) => {
    User.findOne({
            username: req.body.login_username
        })
        .then(user => {
            bcrypt.compare(req.body.login_password, user.password)
                .then(result => {
                    if (result) {
                        req.body.login_username = user.username
                        res.json({
                            message: "Success!",
                            added: true
                        });
                    } else {
                        console.log('Failed login attempt')
                        res.json({
                            message: "Error!",
                            error: err
                        });
                    }
                }).catch(console.error, console.log(req.body.login_password, user.password))
        })
}

и вот мои компоненты входа в систему:

  userID: string;
  userData: any;
  loginUser: any;
  error = "";

  constructor(
    private router: Router,
    private route: ActivatedRoute,
    private httpService: HttpService
  ) {}

  ngOnInit() {
    this.userID = this.route.snapshot.paramMap.get("id");
    this.getSingleUser();
    this.loginUser = { username: "", password: "" };
  }

  getSingleUser() {
    let observable = this.httpService.getOneUser(this.userID);
    observable.subscribe((data) => {
      this.userData = data;
    });
  }
  onSubmit() {
    let observable = this.httpService.loginUser(this.loginUser);
    observable.subscribe((data: any) => {
      console.log("Wrong");
      if (data.error) {
        this.error = data.error.errors.name.message;
      } else {
        this.getSingleUser();
        this.router.navigate([""]);
      }
    });
  }

Когда Я нажимаю кнопку, и мой терминал получает такую ​​ошибку:

undefined $ 2b $ 20 $ 8DmOjsDm3h5q / jEq9lNauezUdFYdL6EBt9gjmCu8 / 0DU0kAnSSIA2 Ошибка: данные и пользователи sh аргументы / требуются на Object.com / npareng /Desktop/personal_project/instagram/node_modules/bcrypt/bcrypt.js:208:17) в /Users/nhannguyen/Desktop/personal_project/instagram/node_modules/bcrypt/promises.js:29:12 в новом обещании ( ) в Object.module.exports.promise (/Users/nhannguyen/Desktop/personal_project/instagram/node_modules/bcrypt/promises.js:20:12) в Object.compare (/ Users / nhannguyen / Desktop / personal_project / instagram /node_modules/bcrypt/bcrypt.js:204:25) в /Users/nhannguyen/Desktop/personal_project/instagram/server/controllers/users.js:65:24 в processTicksAndRejection (internal / process / task_queues. js: 97: 5)

1 Ответ

0 голосов
/ 28 мая 2020

Пожалуйста, добавьте .catch (console.error) после .then (), чтобы отловить полную ошибку.

После этого проверьте, действительно ли значения там, а если нет, проверьте, есть ли плагин body-parser установлено

...