Как действовать при вызове неправильной конечной точки с помощью app.get? - PullRequest
0 голосов
/ 28 сентября 2018

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

Например, одна из конечных точек: '/v1/templates'.

Теперь представьте, что по ошибке пользователь вводит '/v1/templatess'.

. Я использую app.get для работы с известными конечными точками, например:

app.get(
    '/v1/contents/:template_component_content_id',
    controllers.template_component_contents.getById.bind(controllers.template_component_contents)
);

Есть лиМожно сказать, что в случае, если вызываемая конечная точка не совпадает ни с одним из параметров app.get (), выдается ОШИБКА?

Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 09 октября 2018

В app.js напишите это ниже, где вам необходимо routes

const express = require('express');
const app = express();

app.use((req, res, next)=>{
  res.status(404).send({message:"Not Found"});
});

, если вы хотите отобразить некоторую страницу из бэкэнда

app.use((req, res, next)=>{
  res.render('./path/to/file');
});

Для получения дополнительной справки, проверьте этопроект github

nodejs_boiler_plate / app.js

0 голосов
/ 11 октября 2018

Вы можете обрабатывать 404 с помощью экспресс-обработчиков.

В вашем главном экспресс-файле (может быть index.js или app.js) просто добавьте следующее после промежуточного программного обеспечения маршрутизации.

app.use("/v1", your_router);

// catch 404 and forward to error handler
app.use((request, response, next) => {
  // Access response variable and handle it
  // response.status(404).send("Your page is not found"))
  // or
  // res.render("home")
});

Вы можете добиться этого с помощью дополнительного маршрута также с помощью

app.get('*', (req, res) => {})

Но это не рекомендуется, поскольку это операция регулярного выражения и экспресс, уже предоставляющий встроенный обработчик для обработки 404 маршрутов.

0 голосов
/ 28 сентября 2018

Попробуйте что-то вроде:

app.get('*', (req, res) => {
  res.send({error: "No routes matched"});
  res.end();
})

Добавьте этот код в качестве последнего маршрута в ваши маршруты, и я надеюсь, что так и будет.

...