var express = require('express');
var path = require('path');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
我很困惑什么时候捕获 404 错误,什么时候不捕获?
我希望在输入正确的请求路径时不会捕获 404 错误时实现目标,否则错误的请求路径将会。
在您的路由文件夹(如果您使用的是 express-gen)或其他任何地方创建一个使用 express.router()
的 Node 模块,如下所示
var express = require('express');
var bodyParser = require('body-parser');
var dishRouter = express.Router();
dishRouter.use(bodyParser.json());
然后处理你的请求,例如:
dishRouter.route('/')
.get(function(req, res, next) {
res.end('Will send all the dishes to you!');
})
.post(function(req, res, next) {
res.end('Will add the dish: ' + req.body.name + ' with details: ' + req.body.description);
});
并在你的 app.js 或你运行的主文件中使用它:
var express = require('express');
var path = require('path');
var dishRouter=require('./routes/dishRouter');
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
app.use('/dishes',dishRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
res.redirect('/fail');
next(err);
});
所以这将做的是,它将处理来自客户端的 get 和 post 请求,对 URI /dishes
和其他请求,它将抛出错误 404 并发送到 /fail
路径。