Как показать пользовательское сообщение о маршруте, не найденном в expressjs? - PullRequest
0 голосов
/ 13 сентября 2018

Я использовал этот код внизу app.js

app.use(function (req, res) {
   res.send('Route Not Found');
})

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

Ответы [ 2 ]

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

Это отлично работает. Обязательно ставьте app.get('*' ... в конце каждого файла с маршрутами, если вы включаете файлы внешних маршрутов.

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

app.get('/', function(req, res){
        res.status(200).send('GET /')
})

app.get('/a', function(req, res){
        res.status(200).send('GET /a')
})

app.get('*', function(req, res){
        res.status(404).send('404')
})

app.listen(3000)
0 голосов
/ 13 сентября 2018

Поставьте ваш обработчик маршрутов перед:

app.get("/a", require("./controllers/handler1.js"); // catch get route on a
app.get("/b", require("./controllers/handler2.js"); // catch get route on b
app.post("/a", require("./controllers/handler1.js"); // catch post route on a

// error handler, if no route has been caught
app.get("/*", function(req, res){ res.send("404 not found"); res.end();});
app.post("/*", function(req, res){ res.send("404 not found"); res.end();});
...