Express中同一路线上的多个方法
我正在处理的API中有3种不同的方法响应,当前设置如下: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
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