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

标签 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) {
    //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/

相关文章:

node.js - 获取有关EventSource错误的信息

node.js - Passport js 使用sequelize进行本地身份验证

javascript - 前端的 Meteor,后端的 Express (NodeJS)

sql - Knex + Postgresql + node - 如何为选定的列调用 postgresql 函数

javascript - 在node.js中执行退出时不显示控制台警告

javascript - 在 lambda 中使用 node.js 如何解析来自 kinesis 流的数据

javascript - 是否可以破坏我的导入语句

javascript - TypeScript 从现有接口(interface)创建新接口(interface)并更改所有属性的类型

node.js - 如何在 GraphQL 模式中使用 'Decimal' 作为字段类型?

SQL Server简单锁定示例