无法捕获捕获块javascript中的错误

b5buobof  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(130)

我正在使用Web SDK与Appwrite GraphQL API交互以进行用户登录。但是,我遇到了API返回200响应和以下响应的问题,即使我输入了错误的电子邮件或密码。

{
    "errors": [
        {
            "message": "Invalid credentials. Please check the email and password.",
            "extensions": {
                "category": "appwrite"
            },
            "locations": [
                {
                    "line": 5,
                    "column": 9
                }
            ],
            "path": [
                "accountCreateEmailSession"
            ]
        }
    ],
    "data": {
        "accountCreateEmailSession": null
    }
}

我的代码:

const login = async (email, password) => {
    try {
      const res = await graphql.mutation({
        query: `mutation (
          $email: String!,
          $password: String!,
      ) {
        accountCreateEmailSession(
          email: $email,
          password: $password,
      ) {
          _id
        }
      }`,
        variables: {
          email: email,
          password: password,
        },
      });
      console.log(res);
    } catch (error) {
      console.log(error);
      throw error;
    }
  };

当用户输入错误的电子邮件或密码时,它应该记录来自catch块而不是try块的错误消息。
有人能帮我一下吗。

abithluo

abithluo1#

如文档所述,如果发生错误,它将在响应正文中。然而,如果HTTP请求本身没有失败,HTTP状态将始终为200 OK。您可以考虑实现自己的错误处理逻辑。

相关问题