гнездо js Каков наилучший способ обработки повторных пользовательских исключений? - PullRequest
0 голосов
/ 15 апреля 2020

Я разработчик внешнего интерфейса, который начинает разработку моего небольшого внутреннего проекта. Я пытаюсь написать модуль регистрации пользователя, и я хочу проверить мою MongoDB, чтобы увидеть, есть ли у нас уже пользователь с текущим PhoneNumber в нашей БД или нет.

async addUser(createUserDTO: CreateUserDTO): Promise<IUser> {
    const UserWithSamePhoneNumberList: IUser[] = await 
    this.findUserByPhoneNumber(createUserDTO.phoneNumber);
    if(UserWithSamePhoneNumberList.length > 0) {
        console.log("repeative phone number");
    }
    const hash:string = await bcrypt.hash(createUserDTO.password, this.saltRounds);
    const userDTo: CreateUserDTO = {
        name: createUserDTO.name,
        password: hash,
        phoneNumber: createUserDTO.phoneNumber,
        signupDate: new Date().toString()
    };
    const newUser: any = new this.userModel(userDTo);
    return newUser.save();
}
async findUserByPhoneNumber(phoneNumber:string): Promise<IUser[]> {
    return this.userModel.find({phoneNumber:phoneNumber});
}    

я пишу код и он лог repeative phone number успешно, но моя проблема в том, что я не знаю, что является стандартным способом выбросить исключение повторяющегося номера телефона и отправить стандартный ответ клиенту

1 Ответ

1 голос
/ 17 апреля 2020

Вы можете просто выбросить исключение, гнездо автоматически прикрепит правильный код состояния

    if(UserWithSamePhoneNumberList.length > 0) {
    throw new ConflictException({errorObject})   
 }
...