Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在express中对api进行分组_Node.js_Express - Fatal编程技术网

Node.js 如何在express中对api进行分组

Node.js 如何在express中对api进行分组,node.js,express,Node.js,Express,以下是一个例子: 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) { /

以下是一个例子:

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进行分组?

以下是如何对中间件等多个路由重复使用相同的回调函数:

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.all替换app.METHOD,例如.post、.get、.put等,并且您的回调将针对任何请求类型执行。

完全错误,因此不要将其转化为谷歌的大规模参与:刚才看错了,改成这样就不用放进传参了

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

请只用英语。楼层主人是中国人。很抱歉