req.url前缀是什么?

在看node.js实战connect部分,上面说到挂载

function admin( req, res, next ) {
    switch ( req.url ){
        case "/":
            res.end( "try/users" )
            break
        case"/user":
            res.setHeader('Content-Type', 'application/json' )
            res.end(  JSON.stringify(['hello', 'world']) )
            break
    }
}

case用的字符串是/和/user而不是/admin和/admin/users。
这是因为在调用中间件之前,Connect从req.url中去掉了前缀,就像url挂载在/上一样。
req.url前缀是什么如果url是 /a/b/c/d 那么前缀是/a/b/c??
还有这里case "/" , case"/user" url什么时候会分别响应??

阅读 3.8k
2 个回答

req.url是相对路径(除去域名 or IP)。
href可以取到完整的URL

新手上路,请多包涵

在这里, admin 只是方法名,不会影响 req 中任何变量的值
假设ip:port 为 127.0.0.1:3000
req.url 是访问路径中去除 127.0.0.1:3000 的部分,
'/' 对应路径 127.0.0.1:3000 或 127.0.0.1:3000/
'user' 对应路径 127.0.0.1:3000/user

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题