如何在express中分组api

这是一个例子:

var app = require('express')(); function validateToken(req, res, next) { // Do something with request here next(); }; app.get('/user/login', function(req, res) { //code }); app.post('/user/register', function(req, res) { //code }) app.put('/user/register', validateToken, function(req, res) { //code }) app.delete('/user/delete', validateToken, function(req, res) { //code }) 

如果我有10个需要validToken的api,我应该添加10个validToken中间件,例如:

 app.method('......', validateToken, function(req, res) { //code }) app.method('......', validateToken, function(req, res) { //code }) .... app.method('......', validateToken, function(req, res) { //code }) app.method('......', validateToken, function(req, res) { //code }) 

如何使用相同的中间件对API进行分组?

以下是如何重复使用多个路由(如中间件)相同的callback函数:

 var app = require('express')(); function validateToken(req, res, next) { // Do something with request here next(); }; app.get('/user/login', function(req, res) { // code }); app.post('/user/register', function(req, res) { // code }); // Be sure to specify the 'next' object when using more than one callback function. app.put('/user/register', validateToken, function(req, res, next) { // code next(); }); app.delete('/user/delete', validateToken, function(req, res, next) { // code next(); }); 

此外,你可以用app.METHODreplaceapp.METHOD (例如.post.get.put等),并且你的callback将被执行任何请求types。

只是错误,所以不要投入到群众的参与之中(刚才看错了,改成这样就不用放进传参了)

 var group = {url:true,url:true,url:true}; app.use(function(req,res,next){ if(group[req.url]){ // Do something with request here next(); } else { next(); } })