这对我来说是新的,我正在努力学习,所以我的术语和代码可能不是最好的:)。
我有如下代码。 createCustomer 将行添加到表中。我的意图是如果丢失数据则不要调用 db 函数。
try {
if (!username ||
!password ||
!email ||
!firstname ||
!lastname ||
!phone_number||
!role) {
next({
name: "MissingCustomerDataError",
message: "Required Field - username, password, email, firstname, lastname, phone_number"
});
// throw new RouteError({
// name: "MissingCustomerDataError",
// message: "Required Field - username, password, email, firstname, lastname, phone_number"
// });
}
...(some more code)
const cust = await createCustomer({
username,
password,
email,
firstname,
lastname,
phone_number,
role,
address });
我希望 next(...) 从这个逻辑中“下一个”到我在这条路线之后附加的错误处理程序,但它仍然调用 db 函数。如果我使用 throw 它似乎确实脱离了这个逻辑并进入了 catch 块。接下来不应该也离开这个尝试块并继续吗?我认为我在概念上遗漏了一些东西。 谢谢
调用
next
启动下一个中间件/请求处理程序。它不会停止当前功能。您可以使用 return
语句停止并保留函数,或使用 throw
语句跳过某些逻辑。