当我测试我的错误#404页面时,我得到默认值" Not Found。"
require('html');
var WebSocketServer = require('ws').Server
, http = require('http')
, fs = require('fs')
, express = require('express')
, app = express();
app.use(express.static(__dirname + '/public'));
var server = http.createServer(app);
server.listen(42069);
var MainServer = new WebSocketServer({server: server});
// Handle 404
app.use(function(req, res) {
res.status(404).render('/error/404.html',{title: "Error #404"});
});
但是,它确实适用于
app.use(function(req, res) {
res.status(404).render('/error/404.html',{title: "Error #404"});
});
但我不想被重定向到我的404页面,我希望它能在任何不存在的地址上呈现。
有关如何使其发挥作用的任何想法?
谢谢!
答案 0 :(得分:0)
您可以在路线处理后尝试this之类的内容
app.get('/404', function(req, res, next){
// trigger a 404 since no other middleware
// will match /404 after this one, and we're not
// responding here
next();
});
app.use(function(req, res, next){
res.status(404);
// respond with html page
if (req.accepts('html')) {
res.render('404', { url: req.url });
return;
}
// respond with json
if (req.accepts('json')) {
res.send({ error: 'Not found' });
return;
}
// default to plain-text. send()
res.type('txt').send('Not found');
});
答案 1 :(得分:-1)
将所有中间件放在
之后app.use(function(req,res){
res.status(404);
res.render('404page',{
});
});