框架如何知道调用了哪个api?
How does the framework know which api is been called?
框架如何知道调用了哪个api?
app.get('/user/:userId/name/export', function (req, res) {
var userId = req.params.userId;
}
app.get('/user/:userId/name/:name', function (req, res) {
var userId = req.params.userId;
var name = req.params.name
}
我正在开发 api 网关,需要对访问控制进行一些自定义。它需要阻止 api 调用并通过路径中的参数检查用户的角色,如 db 中的 userId 和 name。如果匹配文件中的配置,将传递 acl 并调用 api,否则,将 return 401。所以如果 url 模式相似,我发现很难区分两个 api 这正是被调用的。有什么建议么?非常感谢您的帮助!
Express router 调用与 URL 路径匹配的每个回调。
Route /user/123/name/admin
只匹配第二条路径,但 route /user/123/name/export
匹配两条路径。
如果您在第一次回调时结束请求,则永远不会调用第二次:
app.get('/user/:userId/name/export', function (req, res) {
var userId = req.params.userId;
res.end();
}
app.get('/user/:userId/name/:name', function (req, res) {
var userId = req.params.userId;
var name = req.params.name
}
回调会按照添加顺序调用。所以必须在最后添加全局路径,例如 app.get('*', ...)
。
框架如何知道调用了哪个api?
app.get('/user/:userId/name/export', function (req, res) {
var userId = req.params.userId;
}
app.get('/user/:userId/name/:name', function (req, res) {
var userId = req.params.userId;
var name = req.params.name
}
我正在开发 api 网关,需要对访问控制进行一些自定义。它需要阻止 api 调用并通过路径中的参数检查用户的角色,如 db 中的 userId 和 name。如果匹配文件中的配置,将传递 acl 并调用 api,否则,将 return 401。所以如果 url 模式相似,我发现很难区分两个 api 这正是被调用的。有什么建议么?非常感谢您的帮助!
Express router 调用与 URL 路径匹配的每个回调。
Route /user/123/name/admin
只匹配第二条路径,但 route /user/123/name/export
匹配两条路径。
如果您在第一次回调时结束请求,则永远不会调用第二次:
app.get('/user/:userId/name/export', function (req, res) {
var userId = req.params.userId;
res.end();
}
app.get('/user/:userId/name/:name', function (req, res) {
var userId = req.params.userId;
var name = req.params.name
}
回调会按照添加顺序调用。所以必须在最后添加全局路径,例如 app.get('*', ...)
。