Отображение express sql ошибки пользователю через express или интерфейс - PullRequest
0 голосов
/ 20 января 2020

Я делаю базовое c приложение для входа. Я просто хотел бы, когда появляется ошибка в узле, которая отображается для пользователя.

Я получаю ошибку.

(узел: 5736) UnhandledPromiseRejectionWarning: RequestError: Нарушение ограничения UNIQUE KEY 'IX_RegisteredUsers'. Невозможно вставить повторяющийся ключ в объект 'dbo.RegisteredUsers'.

В идеале, когда это происходит, я бы хотел, чтобы он просто регистрировал что-то для пользователя в строке "зарегистрироваться не удалось, электронная почта уже существует"

express маршрут


app.post("/register", async (req, response) => {
  sql.connect(config, function(err) {
    if (err) {
      console.log(err);
      response.status(400);
      response.send(err);
    } else {
      try {
        var request = new sql.Request();

        var body = req.body;

        console.log(body);

        if (body) {
          var email = body.email;
          var password = body.password;

          request.input("email", sql.VarChar, email);
          request.input("password", sql.VarChar, password);
          request.execute("dbo.RegisterUser");

          response.status(201);
          response.send("User added ");
          console.log("added user");
        } else {
          response.status(400);
          response.send("no content was provided");
        }
      } catch (e) {
        console.log(e);
        response.status(400);
        response.send(e);
        window.alert(e);
        response.send("error register ");
      }
    }
  });
});

Клиентская сторона для этого маршрута


  handleSubmit(e) {
    e.preventDefault();
    if (
      this.state.email.length < 8 ||
      this.state.password.length < 8 ||
      !(this.state.password === this.state.passwordConfirm)
    ) {
      alert(`please enter the form correctly `);
    } else {
      const data = { email: this.state.email, password: this.state.password };

      fetch("/register", {
        method: "POST", // or 'PUT'
        headers: {
          Accept: "application/json, text/plain, */*",
          "Content-Type": "application/json"
        },
        body: JSON.stringify(data)
      });


      alert(`Congradulations you have signed up`);
    }
  }
  catch(e) {
    console.log(e);
  }


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...