Express中同一路线上的多个方法

Express中同一路线上的多个方法,express,Express,我正在处理的API中有3种不同的方法响应,当前设置如下: app.use('/image', require('./routes/image/get')); app.post('/image', require('./routes/image/post')); app.put('/image', require('./routes/image/put')); 有更好的方法吗?您可以在应用程序的Express对象上使用.route(),以减少路由定义中的一些冗余 app.route(“/imag

我正在处理的API中有3种不同的方法响应,当前设置如下:

app.use('/image', require('./routes/image/get'));
app.post('/image', require('./routes/image/post'));
app.put('/image', require('./routes/image/put'));
有更好的方法吗?

您可以在
应用程序的
Express
对象上使用
.route()
,以减少路由定义中的一些冗余

app.route(“/image”)
.post(需要('./routes/image/post'))
.put(require('./路由/图像/put'));
还有
.all()
,它将调用您的处理程序,而不考虑请求http方法

use()
我省略了上面提到的
.use()
,因为它在路由对象上不可用——它设置了应用程序中间件。路由器是中间件的另一层(有关差异的解释,请参阅)。如果真正的目的是调用
.use()
,而不是
.get()
,那么在调用
.route()
(中间件注册顺序很重要)之前,该行必须保留

为不同的http方法重用相同的处理程序 如果希望对一组方法重用相同的处理程序,请使用以下样式:

app.route(“/image”).allOf([“post”,“put”],函数(req,res){
//方法可用于更改处理程序行为。
res.send(“/image用http方法调用:“+req.method”);
});
然后,可以通过向
express.Route
的原型添加新属性来获得所需的功能:

var express=require('express');
express.Route.prototype.allOf=函数(方法/*,…*/){
“严格使用”;
变量i,varargs,methodFunc,route=this;
方法=(方法类型==“字符串”)?[方法]:方法;
如果(方法长度<1){
抛出新错误(“必须至少指定一个方法名。”);
}
varargs=Array.prototype.slice.call(参数,1);
对于(i=0;i
您可以在
应用程序的
Express
对象上使用
.route()
,以减少路由定义中的一些冗余

app.route(“/image”)
.post(需要('./routes/image/post'))
.put(require('./路由/图像/put'));
还有
.all()
,它将调用您的处理程序,而不考虑请求http方法

use()
我省略了上面提到的
.use()
,因为它在路由对象上不可用——它设置了应用程序中间件。路由器是中间件的另一层(有关差异的解释,请参阅)。如果真正的目的是调用
.use()
,而不是
.get()
,那么在调用
.route()
(中间件注册顺序很重要)之前,该行必须保留

为不同的http方法重用相同的处理程序 如果希望对一组方法重用相同的处理程序,请使用以下样式:

app.route(“/image”).allOf([“post”,“put”],函数(req,res){
//方法可用于更改处理程序行为。
res.send(“/image用http方法调用:“+req.method”);
});
然后,可以通过向
express.Route
的原型添加新属性来获得所需的功能:

var express=require('express');
express.Route.prototype.allOf=函数(方法/*,…*/){
“严格使用”;
变量i,varargs,methodFunc,route=this;
方法=(方法类型==“字符串”)?[方法]:方法;
如果(方法长度<1){
抛出新错误(“必须至少指定一个方法名。”);
}
varargs=Array.prototype.slice.call(参数,1);
对于(i=0;i