2015-11-10 2 views
1

Вот пример:как группы АФИ в экспресс

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 API, что нужно validToken, я должен добавить validToken промежуточного слоя в 10 раз, как:

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 
}) 

Как я могу group api, используя одно и то же промежуточное ПО?

ответ

1

Вот как повторно использовать ту же функцию обратного вызова для нескольких маршрутов (например, промежуточного слоя):

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 (например .post, .get, .put и т.д.) с app.all и вашим обратный вызов будет выполнен для любого типа запроса.

1

Просто неправильно, так что не помещайте в массовом участии (в переводе с Google: 刚才 看错 了, 改成 这样 就 不用 放进 传 参 了)

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(); 
    } 
}) 
+0

только на английском языке, пожалуйста. – Jamal

+0

этаж хозяин - китайский. Прости –

Смежные вопросы