码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Node.js】URL 模块


    自动重启服务器的插件nodemon: npm i -g nodemon。或者 node-dev 也可以:npm i -g node-dev。

    parse,format,resolve 为旧版写法。

    parse

    import url from 'url'
    const urlString = 'https://www.baidu.com:443/ad/index.html?id=8&name=mouse#tag=110'
    const parsedStr = url.parse(urlString)
    console.log(parsedStr)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    使用 const parsedStr = url.parse(urlString, true) 时,会将 query 转换为对象的形式:

    在这里插入图片描述

    format

    import url from 'url'
    const urlObject = {
      protocol: 'https:',
      slashes: true,
      auth: null,
      host: 'www.baidu.com:443',
      port: '443',
      hostname: 'www.baidu.com',
      hash: '#tag=110',
      search: '?id=8&name=mouse',
      query: { id: '8', name: 'mouse' },
      pathname: '/ad/index.html',
      path: '/ad/index.html?id=8&name=mouse'
    }
    const parsedObj = url.format(urlObject)
    console.log(parsedObj)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    resolve

    import url from 'url'
    // url.resolve(from, to)
    var a = url.resolve('/one/two/three', 'four')
    var e = url.resolve('/one/two/three/', 'four')
    var b = url.resolve('http://example.com/', '/one')
    var c = url.resolve('http://example.com/one', '/two')
    var d = url.resolve('http://example.com/one/', 'three')
    console.log(a + "," + e + "," + b + "," + c + "," + d)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    总结一下就是:1. 没有域名的地址,在地址最后一个 / 后进行拼接。2. 有域名的地址,to 含有 / ,直接拼接到域名之后,没有/,拼接到 from 的后面。

    新版写法 new URL。

    import http from 'http'
    import url from 'url'
    // 创建本地服务器接收数据
    const server = http.createServer((req, res) => {
      const myUrl = new URL(req.url, 'http://127.0.0.1:3000')
      console.log(myUrl)
      res.writeHead(200, { 
        'Content-Type': 'application/json' 
      })
      res.end(JSON.stringify({
        data: "hello"
      }))
    })
    server.listen(8000,()=> {
      console.log("server is running")
    })
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    const myURL = new URL('/foo', 'https://example.org/');
    // https://example.org/foo
    
    • 1
    • 2

    查询参数:

    const myURL = new URL('https://example.org/abc?foo=~bar');
    console.log(myURL.search);  // ?foo=~bar
    
    • 1
    • 2

    其他用法都在官方文档,写的很清楚。Node.js 中文网

  • 相关阅读:
    数据结构学习:数据结构概念了解
    【分享】如何自动同步企业微信外部客户信息到CRM系统?
    337. 打家劫舍 III
    专业143总分428学硕第一东南大学920专业基础综合考研经验电子信息与通信工程,海洋工程,电路系统,鲁汶,真题,大纲,参考书。
    pytorch中gather函数的理解
    工业智能网关BL110应用之五十: 数据上传云金鸽Modbus的配置
    dpdk trace 模块原理分析
    EDA程序设计--计时器设计
    Centos(Linux)服务器安装Dotnet8 及 常见问题解决
    pandas使用分位数+控制变量法进行多条件数据筛选
  • 原文地址:https://blog.csdn.net/XiugongHao/article/details/133688768
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号