Как я могу предотвратить аварийное завершение работы сервера JS при возникновении ошибки? - PullRequest
0 голосов
/ 21 апреля 2019

Если я отправлю правильный запрос API api на этот сервер Express, он будет работать нормально. Если я отправляю неверный запрос, сервер падает (ReferenceError: next не определено). Как я могу изменить это так, чтобы в случае возникновения ошибки;

  1. сервер не падает
  2. клиент получает сообщение об ошибке от сервера

Экспресс server.js:

// Add a new test-resource-a
app.post('/test-resource-a', (request, response) => {
    pool.query('INSERT INTO my_table SET ?', request.body, (error, result) => {
        if (error) {
            next(err);
        }
        response.status(201).send(`test-resource-a added with id: ${result.insertId}`);
    });
});

//An error handling middleware
app.use(function (err, req, res, next) {
    res.status(500);
    res.send("Oops, something went wrong.")
});

1 Ответ

1 голос
/ 21 апреля 2019

Эта ошибка означает, что метод next не определен.В вашем случае, я думаю, вам не нужен следующий метод.

// Add a new test-resource-a
app.post('/test-resource-a', (request, response) => {
    pool.query('INSERT INTO my_table SET ?', request.body, (error, result) => {
        if (error) {
            response.status(400).send(err);
        } else {
            response.status(201).send(`test-resource-a added with id: ${result.insertId}`);
        }
    });
});

//An error handling middleware
app.use(function (err, req, res, next) {
    res.status(500);
    res.send("Oops, something went wrong.")
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...