示例如下:
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,我应该添加 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
})
如何使用相同的中间件对 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
});
// 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
,并且您的回调将为任何请求类型执行。
关于node.js - 如何在express中对api进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33621967/