表达和js新手并尝试理解下一步

问题描述 投票:0回答:1

这对我来说是新的,我正在努力学习,所以我的术语和代码可能不是最好的:)。

我有如下代码。 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 块。接下来不应该也离开这个尝试块并继续吗?我认为我在概念上遗漏了一些东西。 谢谢

javascript express error-handling
1个回答
0
投票

调用

next
启动下一个中间件/请求处理程序。它不会停止当前功能。您可以使用
return
语句停止并保留函数,或使用
throw
语句跳过某些逻辑。

© www.soinside.com 2019 - 2024. All rights reserved.