我正在使用Knex中的事务来删除和更新一些数据,这些数据运行良好,但偶尔也会从内部进程中抛出错误。我能够捕获错误并对它们作出反应,但我似乎无法获得描述错误的“友好”错误消息。下面是一个示例:
交易代码:
try {
const trxResponse = await this.knex.transaction(async (trx) => {
// ... do some stuff ...
// Error is thrown within this operation
return await trx(this.tableName)
.insert(data)
.returning(this.fieldsToReturn);
});
return trxResponse;
} catch (err) {
console.log('handled', err, JSON.stringify(err), err.message);
throw new QueryError();
}
上面的console.log
为每个值打印以下值(这些是真正的错误):
err
:{ error: invalid input value for enum relationship: "yourself"... /* stack trace */
<--我需要这个没有堆栈跟踪的文本
JSON.stringify(err)
:{"name":"error","length":102,"severity":"ERROR","code":"22P02","file":"enum.c","line":"60","routine":"enum_in"}
err.message
:insert into "beneficiary" ("application", "email", "firstName", "lastName", "middleInitial", "percentage", "relationship", "suffix") values ($1, $2, $3, $4, $5, $6, $7, $8), ($9, $10, $11, $12, $13, $14, $15, $16) returning "firstName", "lastName", "suffix", "middleInitial", "email", "percentage", "relationship" - invalid input value for enum relationship: "yourself"
我真正需要的是当您在上面console.log(err)
时显示的“错误”文本。如何从错误中仅拉出这条字符串?我想不出怎么才能得到那根绳子。
谢谢!
发布于 2022-08-31 20:44:50
https://stackoverflow.com/questions/60909055
复制相似问题