所以在快递中你可以做到:
app.get('/logo/:version/:name', function (req, res, next) {
// Do something
}
和
app.all('/logo/:version/:name', function (req, res) {
// Do something
}
有没有办法只有两种方法(即GET和HEAD)?如:
app.get.head('/logo/:version/:name', function (req, res, next) {
// Do something
}
答案 0 :(得分:11)
您可以使用.route()
方法。
function logo(req, res, next) {
// Do something
}
app.route('/logo/:version/:name').get(logo).head(logo);
答案 1 :(得分:8)
只需拔出匿名函数并为其命名:
function myRouteHandler(req, res, next) {
// Do something
}
app.get('/logo/:version/:name', myRouteHandler);
app.head('/logo/:version/:name', myRouteHandler);
或使用常规中间件功能并检查req.method
:
app.use('/logo/:version/:name', function(req, res, next) {
if (req.method === 'GET' || req.method === 'HEAD') {
// Do something
} else
next();
});
答案 2 :(得分:1)
另一个版本:
['get','head'].forEach(function(method){
app[method]('/logo/:version/:name', function (req, res, next) {
// Do something
});
});
答案 3 :(得分:1)
如果多种方法的路由模式相同,也可以使用数组扩展运算符。
例如
const route = [
'/logo/:version/:name',
function handleRequest(req, res) {
// handle request
}
];
app.get(...route);
app.post(...route);