如何在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.METHOD
replaceapp.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(); } })