node.js - 如何检查应用程序中是否存在 req.url 路径?

标签 node.js url routes sequelize.js middleware

我在我的应用程序中使用 sequelizejs、nodejs。我知道这会检查 inbuild,但我想手动检查 if() 条件。
下面是一些网址路径

/user
/user/11d9b6130159 => user/:id
/user/11d9bdfg0159/sample => user/:id/sample

我想要的是,有中间件,必须在应用程序路由中检查当前的 url,例如
if(url.parse(req.url).path === "/user"){
  //some action do
}

但我没有留下剩余的网址。请建议解决方法。谢谢

最佳答案

如果你真的想手动进行 URL 解析,那么方法可能是这样的:

编辑:根据您的评论,我修改了示例代码(超过 3 个级别)。您可以根据需要轻松扩展它。

const url = require('url');

const path = ctx.request.href;
const pathName = url.parse(path).pathname;
const pathNameParts = pathName.split('/'');

if (pathNameParts && pathNameParts[1] && pathNameParts[1] === 'user') {
    if (pathNameParts[2]) {
        const id = pathNameParts[2];    // :id is now defined
        if (pathNameParts[3] && pathNameParts[3] === 'sample') {
            if (pathNameParts[4]) {
                const id2 = pathNameParts[4];   // :id2 is now defined
                if (pathNameParts[5] && pathNameParts[5] === 'disable') {
                    // do some action for /user/:id/sample/:id2/disable
                } else {
                    // do some action for /user/:id/sample/:id2
                }           
            } else {
                // do some action for /user/:id/sample
            }
        } else {
            // do some action for /user/:id
        }           
    } else {
        // do some action for /user
    }
}

所以我只会这样做,如果你真的想自己做解析。否则使用类似 express 路由器或 koa 路由器的东西。使用快速路由器它会像:
app.use('/user/:id', function (req, res, next) {
  console.log('ID:', req.params.id);
  next();
});

关于node.js - 如何检查应用程序中是否存在 req.url 路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644806/

相关文章:

node.js - Websocket 后端客户端连接在一段时间后停止接收流更新

node.js - Istio 的 JWT 用户身份验证服务

url - 在 Telegram 中检索网站信息的网站结构应该是什么?

ios - FileManager.createDirectory 失败,NSCocoaErrorDomain 代码 : 518

php - laravel 5.1同时注册、更新用户信息和发送数据到两个表

ruby-on-rails - Rails 中的 link_to 方法使用什么 Ruby 结构?

node.js - Yelp 中的类别搜索在 nodejs 中未正确过滤。我给的类别是 "Restaurants"但我的 o/p 是 : parks and Playgrounds

mysql - 从表中获取实体并对字段求和 - Sequelize

javascript - 读取选项卡的当前 url

Codeigniter:所有阿拉伯语路线均无效