gpt4 book ai didi

javascript - 从 Express 中的请求获取中间件挂载点

转载 作者:行者123 更新时间:2023-12-03 02:35:15 27 4
gpt4 key购买 nike

我有一个带有路由器的 Express 应用程序,以下是路由器的示例:

const router = require('express-promise-router')();

const users = require('./users');
const validate = require('./validate');

router.get('/users', users.list);
router.get('/users/:id', users.get);
// other routes here

module.exports = router;

现在我想添加一个验证每个查询的中间件,就像这样(这不是工作示例,它只是为了展示我想要完成的想法):

const schemas = {
'/users': 'some validation schema',
'/users/:id': 'another validation'
}

module.exports = (req, res, next) => {
const url = req.originalUrl; // This is where I'm stuck.

if (!schemas[url]) {
// throw new error that validation failed
}

// validating somehow
if (!req.validate(schemas[url])) {
// throw new error that validation failed
}

return next();
}

为此,我需要获取中间件挂载文件夹(例如“/users/557”的“/users/:id”)。我尝试使用 req.originalUrl,但它返回完整的 URL 路径而不是挂载文件夹。

我怎样才能实现这个目标?如果没有办法,我怎样才能以另一种方式编写我的验证中间件以使其工作?

最佳答案

req.route中您将获得API的路径。

Check this screenshot

关于javascript - 从 Express 中的请求获取中间件挂载点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48560445/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com