Node.js 如何为express.js中的无效路径发送自定义消息?
express.js中的以下方法Node.js 如何为express.js中的无效路径发送自定义消息?,node.js,express,Node.js,Express,express.js中的以下方法 var express = require('express'), app = express(); app.get('/users', function (req, res) { //Some logic } 可以使用URL访问 http://<host-name>:<port>/users http://:/users 如果路径无效,例如http://:/invalid path,我将得到以下响应 无法获取/删除无效路径
var express = require('express'), app = express();
app.get('/users', function (req, res) {
//Some logic
}
可以使用URL访问
http://<host-name>:<port>/users
http://:/users
如果路径无效,例如http://:/invalid path,我将得到以下响应
无法获取/删除无效路径
在express.js中是否有方法为无效路径发送自定义消息 实现这一目标的一个方法是使用app.all e、 g
实现这一目标的一种方法是使用app.all e、 g
是的,如果我没弄错的话,你说的是404找不到页面 使用express执行此操作的方式实际上非常简单。Express按定义的顺序匹配路由,这意味着,如果您尝试访问未定义的路由,它将尝试以前的所有路由,直到没有更多路由为止。因此,您需要定义一个路由来捕获任何尚未匹配的请求 怎么做 很简单,由于定义了最后一条路由(因此在该路由之后的代码中没有定义更多路由),您可以定义以下路由:
app.all(function(req, res, next) {
// Your 404 logic here
}
是的,如果我没弄错的话,你说的是404找不到页面 使用express执行此操作的方式实际上非常简单。Express按定义的顺序匹配路由,这意味着,如果您尝试访问未定义的路由,它将尝试以前的所有路由,直到没有更多路由为止。因此,您需要定义一个路由来捕获任何尚未匹配的请求 怎么做 很简单,由于定义了最后一条路由(因此在该路由之后的代码中没有定义更多路由),您可以定义以下路由:
app.all(function(req, res, next) {
// Your 404 logic here
}
您可以创建一个middleare错误,如下所示 /中间件/error.js
“未找到”可以是带有“未找到”状态消息的特定页面。您可以创建一个middleare错误,如下所示 /中间件/error.js
not found可以是带有not found status消息的特定页面。在路由之后,您需要捕获所有404(任何路由都不提供的URL),然后根据/path制作一些用于错误处理的中间件:
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
app.use('/api', function (err, req, res, next) {
res.status(err.status || 500);
res.json({
message: err.message,
error: err
})
});
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
我制作了一个自定义错误处理程序,它显示了一个自定义错误页面(您可以在/views/error.jade中修改模板),而对于以/api(/api/something等)开头的请求,我返回一条json错误消息
这是/views/error.jade:
扩展布局
block content
h1= message
h2= error.status
pre #{error.stack}
在路由之后,您需要捕获所有404(任何路由都不提供URL),然后根据/path制作一些用于错误处理的中间件:
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
app.use('/api', function (err, req, res, next) {
res.status(err.status || 500);
res.json({
message: err.message,
error: err
})
});
app.use(function (err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
我制作了一个自定义错误处理程序,它显示了一个自定义错误页面(您可以在/views/error.jade中修改模板),而对于以/api(/api/something等)开头的请求,我返回一条json错误消息
这是/views/error.jade:
扩展布局
block content
h1= message
h2= error.status
pre #{error.stack}
谢谢这很有帮助,谢谢。这有帮助。