Я пытаюсь выполнить запрос Postgresql, который добавляет данные в массив для определенного идентификатора, и, если запрос не может обновить какие-либо строки, он должен вернуть ошибку во внешней части. Однако прямо сейчас я могу заставить его только возвращать ошибку в журналы на бэкэнде, и мне было интересно, как я могу заставить его вернуть ошибку, которая будет выдана пользователю. Код с запросом находится в репозитории, как показано ниже:
public updateThis(
user: number,
name: string,
): Promise<User> {
let self = this
return new Promise<User>(function(resolve, reject){
self.dataSource.execute('update lbstarter.users SET friends = array_append(friends, '+
1 + ') where user = '+ user + ' and name = \'' + name +
'\' and completed = false returning id AS id, friends AS friends;', [])
.then(record => {
if (record.rows.length == 0) {
return Promise.reject('No record found')
}
else {
resolve(record.rows)
}
}).catch(err => {throw new Error(err)});
})
}
Маршрут, который вызывает этот код, просто:
return await this.userRepository.updateThis(user, name)
Выдает ошибку на серверной части, но делаетне вернуть его на звонок на передний конец. На внешнем интерфейсе я получаю внутреннюю ошибку сервера.