一、http 模块

http.js

  1. const http = require('http');
  2. const hostname = '127.0.0.1';
  3. const port = 3000;
  4. const server = http.createServer((request, response) => {
  5. response.statusCode = 200;
  6. response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  7. response.end('http 模块。');
  8. });
  9. server.listen(port, hostname, () => {
  10. console.log(`服务器运行在 http://${hostname}:${port}`);
  11. });

执行 node http.js,访问:127.0.0.1:3000/

二、url 模块

url.js

  1. const url = require('url');
  2. const http = require('http');
  3. const hostname = '127.0.0.1';
  4. const port = 3000;
  5. const server = http.createServer((request, response) => {
  6. // 过滤掉 request.url == '/favicon.ico' 的情况,否则会打印两次结果
  7. if (request.url != '/favicon.ico') {
  8. console.log(url);
  9. };
  10. response.statusCode = 200;
  11. response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  12. response.end('url 模块。');
  13. });
  14. server.listen(port, hostname, () => {
  15. console.log(`服务器运行在 http://${hostname}:${port}`);
  16. });

  

执行 node url.js,访问:127.0.0.1:3000/

  1. { parse: [Function: urlParse],
  2. resolve: [Function: urlResolve],
  3. resolveObject: [Function: urlResolveObject],
  4. format: [Function: urlFormat],
  5. URL:
  6. { [Function: URL]
  7. originFor: [Function],
  8. domainToASCII: [Function],
  9. domainToUnicode: [Function] },
  10. Url: [Function: Url] }

  

2.1 url 模块下 parse 函数

1、parse(获取地址信息)
  1. const url = require('url');
  2. const http = require('http');
  3. const hostname = '127.0.0.1';
  4. const port = 3000;
  5. const server = http.createServer((request, response) => {
  6. if (request.url != '/favicon.ico') {
  7. console.log(url.parse('http://www.baidu.com?name=liu'));
  8. };
  9. response.statusCode = 200;
  10. response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  11. response.end('url 模块下 parse 函数(传入参数)。');
  12. });
  13. server.listen(port, hostname, () => {
  14. console.log(`服务器运行在 http://${hostname}:${port}`);
  15. });

执行 node parse2.js,访问:127.0.0.1:3000/

  1. Url {
  2. protocol: 'http:',
  3. slashes: true,
  4. auth: null,
  5. host: 'www.baidu.com',
  6. port: null,
  7. hostname: 'www.baidu.com',
  8. hash: null,
  9. search: '?name=liu',
  10. query: 'name=liu',
  11. pathname: '/',
  12. path: '/?name=liu',
  13. href: 'http://www.baidu.com/?name=liu' }
2、parse(parse 扩展)
  1. const url = require('url');
  2. const http = require('http');
  3. const hostname = '127.0.0.1';
  4. const port = 3000;
  5. const server = http.createServer((request, response) => {
  6. if (request.url != '/favicon.ico') {
  7. /*
  8. parse 方法可以传两个参数:
  9. 第一个参数是地址。
  10. 第二个参数是 true 的话表示把 get 传值转换成对象。
  11. */
  12. const result = url.parse(request.url, true);
  13. console.log(result);
  14. console.log(result.query.userName);
  15. console.log(result.query.userAge);
  16. };
  17. response.statusCode = 200;
  18. response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  19. response.end('url 模块下 parse 函数(parse 扩展)。');
  20. });
  21. server.listen(port, hostname, () => {
  22. console.log(`服务器运行在 http://${hostname}:${port}`);
  23. });

  

  1.  

执行 node parse3.js,访问:127.0.0.1:3000/?userName=liu&userAge=24

  1. Url {
  2. protocol: null,
  3. slashes: null,
  4. auth: null,
  5. host: null,
  6. port: null,
  7. hostname: null,
  8. hash: null,
  9. search: '?userName=liu&userAge=24',
  10. query: { userName: 'liu', userAge: '24' },
  11. pathname: '/',
  12. path: '/?userName=liu&userAge=24',
  13. href: '/?userName=liu&userAge=24' }
  14. liu
  15. 24

  

2.2 url 模块下 format 函数

format: 逆向 parse。

format.js

  1. const url = require('url');
  2. const http = require('http');
  3. const hostname = '127.0.0.1';
  4. const port = 3000;
  5. const server = http.createServer((request, response) => {
  6.    if (request.url != '/favicon.ico') {
  7.        console.log(url.format({
  8.            protocol: null,
  9.            slashes: null,
  10.            auth: null,
  11.            host: null,
  12.            port: null,
  13.            hostname: null,
  14.            hash: null,
  15.            search: '?userName=liu&userAge=24',
  16.            query: {
  17.                userName: 'liu',
  18.                userAge: '24'
  19.            },
  20.            pathname: '/',
  21.            path: '/?userName=liu&userAge=24',
  22.            href: '/?userName=liu&userAge=24'
  23.        }));
  24.    };
  25.    response.statusCode = 200;
  26.    response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  27.    response.end('url 模块下 format 函数。');
  28. });
  29. server.listen(port, hostname, () => {
  30.    console.log(`服务器运行在 http://${hostname}:${port}`);
  31. });

执行 node format.js,访问:127.0.0.1:3000/

  1. /?userName=liu&userAge=24

2.3 url 模块下 resolve 函数

resolve: 追加或替换地址。

resolve.js

  1. const url = require('url');
  2. const http = require('http');
  3. const hostname = '127.0.0.1';
  4. const port = 3000;
  5. const server = http.createServer((request, response) => {
  6.    if (request.url != '/favicon.ico') {
  7.        console.log(url.resolve('127.0.0.1:3000/?userName=liu&userAge=24', 'userName=zhao'));
  8.    };
  9.    response.statusCode = 200;
  10.    response.setHeader('Content-Type', 'text/plain;charset=utf-8');
  11.    response.end('url 模块下 resolve 函数。');
  12. });
  13. server.listen(port, hostname, () => {
  14.    console.log(`服务器运行在 http://${hostname}:${port}`);
  15. });

执行 node resolve.js,访问:127.0.0.1:3000/

  1. 127.0.0.1:3000/userName=zhao

node(http, url)的更多相关文章

  1. node.js url模块

    URL url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) url.format(urlObj) url.resolve(from, ...

  2. 3.node的url属性

    node的url属性 1.parse: [Function: urlParse],2.format: [Function: urlFormat],3.resolve: [Function: urlRe ...

  3. 详解Node解析URL网址

    前提给大家声明一下,我操作的环境是Mac终端下操作的.(前提是你先要下载好node.js) 说道URL 恐怕都不陌生,但是要说URL,就 必须先说下URI URI是统一资源标识符,是一个用于标识某一互 ...

  4. Node fs, url, http 组合小型的服务器 ( 满足html请求, get, post 传值 )

    <script type="text/javascript"> /* * 引入模块 */ var http = require('http'); var url = r ...

  5. Node.js URL

    稳定性: 3 - 稳定 这个模块包含分析和解析 URL 的工具.调用 require('url') 来访问模块. 解析 URL 对象有以下内容,依赖于他们是否在 URL 字符串里存在.任何不在 URL ...

  6. Node.js——url模块

    url模块通过api可以将get提交的参数方便的提取出来

  7. node的url模块

    .parse(url,query2obj[boolean],ignorePrototype[boolean]) .format({}) 和.parse相反,将带有url参数属性的对象组装成url .r ...

  8. node获取URL数据

    req.method  -->GET req.hostname  -->127.0.0.1 req.originalUrl  -->/test/test/test?name=wang ...

  9. Node.js之HTPP URL

    几乎每门编程语言都会包括网络这块,Node.js也不例外.今天主要是熟悉下Node.js中HTTP服务.其实HTTP模块是相当低层次的,它不提供路由.cookie.缓存等,像Web开发中不会直接使用, ...

随机推荐

  1. Javascript高级编程学习笔记(70)—— 事件(14)内存和性能

    由于事件处理程序是现代的web程序交互能力的提供者 所以在日常实践中,我们免不了要向页面中添加大量的事件处理程序(不管是用于用户交互还是用于统计用户数据) 在创建GUI(图形用户界面)的语言(如C#) ...

  2. Javascript高级编程学习笔记(31)—— BOM(5)screen、history对象

    screen对象 screen对象应该是BOM对象中最不常用的对象了 其主要用于提供客户端的显示能力信息 包括浏览器外部显示的信息,和像素的宽高等 这个对象的主要用于检测客户端能力,一般不会影响功能 ...

  3. 吴恩达机器学习笔记49-主成分分析问题(Principal Component Analysis Problem Formulation)

    主成分分析(PCA)是最常见的降维算法. 在PCA 中,我们要做的是找到一个方向向量(Vector direction),当我们把所有的数据都投射到该向量上时,我们希望投射平均均方误差能尽可能地小.方 ...

  4. 【ABP杂烩】Extensions后缀扩展方法

    1.Extensions介绍 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用 ...

  5. 解决 Chrome 下载不了东西 失败 - 已屏蔽 的问题

    或许你怎么也想不到是IE的问题 由于IE的安全设定问题 但是这个锅 确实不应该是IE来背. 因为我IE下载都没出现这个问题. 解决方法是这样的: IE>Internet选项>安全>自 ...

  6. 为什么我的Linux ls命令不能用了?

  7. 解决ios关于:ERROR Internal navigation rejected - <allow-navigation> not set for url='about:blank'

    在mac上,cordova打包ionic项目为苹果手机app出现 这个问题:ERROR Internal navigation rejected - <allow-navigation> ...

  8. 【shiro】(2)---基于RUL的权限管理

    基于RUL的权限管理 我想在写shiro权限管理认证前,先来一个基于URL实现的权限管理控制. 一.基于URI的权限业务逻辑  实现思路:       将系统操作的每个url配置在权限表中,将权限对应 ...

  9. mysql 开发基础系列5 运算符

    1. 算术运算符 2.比较运算符 注意NULL值不能用= 运算符 SELECT * FROM t WHERE c =NULL; -- 需要改成 SELECT * FROM t WHERE c IS N ...

  10. 从零开始学 Web 之 Vue.js(四)Vue的Ajax请求和跨域

    大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...