Node.js基础入门之path模块,url模块,http模块使用详解

目录
  • path模块
    • 1. path模块示例
    • 2. path模块其他方法
  • url模块
    • 1. 旧的解析方法
    • 2. 新的解析方法
  • http模块
    • 1. 什么是HTTP协议?
    • 2. HTTP协议约束的细节
    • 3. HTTP请求响应过程
    • 4. http模块get方法

经过前面四天的学习,对Node.js已经有了一个基础的认识,今天继续学习Node.js网络通信编程相关内容,并稍加整理加以分享,如有不足之处,还请指正。

path模块

Node.js中,提供了一个path模块,在这个模块中,提供了许多实用的,可被用来处理与转换文件路径的方法及属性。path是一个系统模块,不需要单独安装,主要用于格式化或拼接完整路径。

1. path模块示例

以path模块中最常用的是join方法【拼接路径】为例,如下所示:

 var path = require('path');
 //拼接路径:将多个字符串拼接成一个完整的路径
 var file = path.join(__dirname,'file1.txt');
 console.log("当前路径:"+file);

示例截图,如下所示:

注意:__dirname是内置属性,表示当前程序所在的路径。

2. path模块其他方法

path模块除了join外,还提供了其他方法,如下所示:

var path = require('path');
//拼接路径:将多个字符串拼接成一个完整的路径
var file = path.join(__dirname,'file1.txt');
console.log("当前路径:"+file);
//返回路径中的文件夹部分
var dirname = path.dirname(file);
//返回路径中的文件部分,包含文件名和扩展名
var filename = path.basename(file);
//返回路径中的扩展名
var extname = path.extname(file);
//解析路径对象,返回一个对象
var p = path.parse(file);
console.log("dirname:"+dirname);
console.log("filename:"+filename);
console.log("extname:"+extname);
console.log("parse解析后的对象:");
console.log(p)

示例截图,如下所示:

url模块

URL模块主要提供对URL(Uniform Resource Locator,统一资源定位器)的相关操作的属性和方法。

网址字符串是包含多个有意义组件的结构化字符串。 解析时,将返回包含每个组件的属性的网址对象。

url 模块提供了两种用于处理网址的 API:一种是 Node.js 特定的旧版 API,一种是实现了与 Web 浏览器使用的相同的 WHATWG 网址标准的新版 API。

下面提供了 WHATWG 和 旧版 API 之间的比较。

使用 WHATWG API 解析网址字符串:

 const myURL =
   new URL('https://user:pass@sub.example.com:8080/p/a/t/h?query=string#hash');

使用旧版 API 解析网址字符串:

 import url from 'url';
 const myURL =  url.parse('https://user:pass@sub.example.com:8080/p/a/t/h?query=string#hash');

1. 旧的解析方法

旧的解析方法,直接采用模块的parse函数即可,如下所示:

 var url = require('url');
 var u="https://www.cnblogs.com/hsiang/p/15182972.html";
 //旧的解析方法
 var obj = url.parse(u);
 console.log("解析后的对象:");
 console.log(obj);

解析示例截图,如下所示:

注意:返回的obj是一个对象,通过obj.属性名,可以获取更加详细的内容。

2. 新的解析方法

 //新的解析方法【ES6写法】
 const {URL} = require('url');
 var u="https://www.cnblogs.com/hsiang/p/15182972.html";
 const obj=new URL(u);
 console.log("新的解析方法");
 console.log(obj);

示例截图,如下所示:

ES5写法,如下所示:

 //新的解析方法【ES5写法】
 var url = require('url');
 var u="https://www.cnblogs.com/hsiang/p/15182972.html";
 var obj =new  url.URL(u);
 console.log("新的解析方法");
 console.log(obj);

注意:通过对比,发现新旧两种方式解析出来的结果大体上相同,仅存细微差异,具体可参考上述新旧对比截图。

http模块

网络作为信息传输,接收,共享的虚拟平台,通过它将各个点,面,体的信息联系到一起,从而实现这些资源的共享。网络传输数据有一定的规则,这些规则称之为协议,http协议就是规则的一种,而且是使用最频繁的一种网络传输协议。

1. 什么是HTTP协议?

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。HTTP协议定义了数据在浏览器和服务器之间网络传输的数据格式和过程。

2. HTTP协议约束的细节

HTTTP协议定义了浏览器和服务器之间交互数据的格式及过程。具体如下所示:

  • 定义了浏览器以什么格式向服务器发送请求;
  • 定义了服务器以什么格式解析浏览器发送过来的数据;
  • 定义了服务器以什么格式响应数据给浏览器;
  • 定义了浏览器已什么格式解析服务器响应的数据;

3. HTTP请求响应过程

以浏览一次网页为例,请求响应过程如下所示:

4. http模块get方法

因为网络中的请求,大部分都是get方式,且不带请求体,所以Node.js的http模块提供了便捷方法。如下所示:

var http=require('http');
var fs = require('fs');

http.get('http://www.itsource.cn',function(res){
    //res是一个IncomingMessage对象
    //console.log(res);
    var stream = fs.createWriteStream('./a.html');
    //res是流对象,可以监听data事件

    res.on('data',function(data){
        console.log(data.toString());
        stream.write(data);
    });
    res.on('end',function(){
        stream.end();
        console.log('下载成功');
    });
    //或者采用管道
    //res.pipe(stream);
});

上述示例采用get方法获取文件内容,并保存文件内容到文件中。示例结果如下:

到此这篇关于Node.js基础入门之path模块,url模块,http模块使用详解的文章就介绍到这了,更多相关Node.js path url http内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 深入理解node.js之path模块

    node之path模块 //引用该模块 var path = require("path"); 1.路径解析,得到规范化的路径格式 //对window系统,目录分隔为'\', 对于UNIX系统,分隔符为'/',针对'..'返回上一级:/与\\都被统一转换 //path.normalize(p); var myPath = path.normalize(__dirname + '/test/a//b//../c/utilyou.mp3'); console.log(myPath); //

  • node.js入门学习之url模块

    前言 今天主要记录的是关于node.js里面的一个简单的模块,url模块.这个url的模块要使用的话需要先引入.若只是在命令行里比如cmd或git bash 等使用url这个模块的话,是不需要require进来的.直接使用便可. 引入模块 var url = require('url'); 一.url.parse() /* url.parse(urlString[,parseQueryString[,slashesDenoteHost]]) * urlString <string>将被解析的网

  • Node.js之http模块的用法

    前言 Node.js开发的目的就是为了用JavaScript编写Web服务器程序.因为JavaScript实际上已经统治了浏览器端的脚本,其优势就是有世界上数量最多的前端开发人员.如果已经掌握了JavaScript前端开发,再学习一下如何将JavaScript应用在后端开发,就是名副其实的全栈了. HTTP协议 要理解Web服务器程序的工作原理,首先,我们要对HTTP协议有基本的了解.如果你对HTTP协议不太熟悉,先看一看HTTP协议简介. HTTP服务器 要开发HTTP服务器程序,从头处理TC

  • 深入理解node.js http模块

    http模块主要用于搭建HTTP服务端和客户端,使用HTTP服务器或客户端功能都必须调用http模块. 创建服务器 var http = require("http");var url = require("url");//创建服务器//http继承自tcpvar server = http.createServer(function (req,res) { var urlstr = req.url;//获取请求的路径 var urlMethod = req.met

  • node.js-path模块你了解多少

    目录 1.什么是path模块 2.路径拼接 1. path.join() 的语法格式 2.path.join()代码示例 3.文件读取路径改写 3.获取路径中的文件名 1. path.basename() 的语法格式 2.path.basename() 代码示例 4.获取文件的扩展名 1. path.extname() 的语法格式 总结 1.什么是path模块 [解释]: path 模块是 Node.js 官方提供的.用来处理路径的模块.它提供了一系列的方法和属性,用来满足用户对路径的处理需求.

  • node.js中http模块和url模块的简单介绍

    前言 本文主要给大家介绍了关于node.js中http模块与url模块的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 一.http模块的简单介绍 node.js当中的http内置模块可以用于创建http服务器与http客户端. 1.引包 const http = require('http'); 2.创建http服务器 var server = http.createServer((req,res)=>{ }); 使用http的.createServer()方法可以

  • Node.js基础入门之path模块,url模块,http模块使用详解

    目录 path模块 1. path模块示例 2. path模块其他方法 url模块 1. 旧的解析方法 2. 新的解析方法 http模块 1. 什么是HTTP协议? 2. HTTP协议约束的细节 3. HTTP请求响应过程 4. http模块get方法 经过前面四天的学习,对Node.js已经有了一个基础的认识,今天继续学习Node.js网络通信编程相关内容,并稍加整理加以分享,如有不足之处,还请指正. path模块 Node.js中,提供了一个path模块,在这个模块中,提供了许多实用的,可被

  • Node.js基础入门之模块与npm包管理器使用详解

    目录 require函数 模块分类 第三方模块 1. 安装第三方模块 2. 引入第三方模块 3. 示例测试 系统模块 require注意事项 exports导出对象 1. exports示例 2. exports注意事项 module模块对象 package.json包描述文件 1. 什么是package.json ? 2. 如何创建package.json文件? NPM基础 1. 常用npm命令 2. npm 示例 cnpm基础 1. 什么是cnpm ? 2. 使用cnpm 控制台输出 1.

  • Node.js基础入门之使用方式及模块化详解

    目录 什么是Node.js ? Node.js下载 Node.js和JavaScript的区别 Node.js安装与验证 Node.js使用方式 1. REPL模式 2. 文件模式 Node.js模块化 1. 什么是模块? 2. 模块分类 3. 创建自定义模块 4. 调用自定义模块 5. 模块测试 6. 主模块 7. 模块组成 在这个竞争日益激烈的今天,已经不是一门语言,一项技术走天下的时代了.正所谓艺多不压身,今天开始学习Node.js,学而时习之,不亦乐乎,希望可以借鉴经验,学以致用,如有不

  • Node.js基础入门之缓存区与文件操作详解

    目录 缓存区 1. 什么是缓存区? 2. 创建指定长度的缓存区 3. 通过数组创建缓存区 4. 通过字符串创建缓存区 5. 读写缓存区 6. 复制缓存区 文件操作 1. 异步直接读取 2. 同步直接读取 3. 流式读取 4. 写入文件 5. 流式写入文件 6. 读取文件信息 7. 删除文件 8. 管道 9. 链式流 经过前面三天的学习,Node.js的基础知识已逐渐掌握,今天继续学习缓存区和文件操作,并稍加整理加以分享,如有不足之处,还请指正. 缓存区 1. 什么是缓存区? JavaScript

  • Node.js基础入门之回调函数及异步与同步详解

    目录 回调函数 1. 什么是回调函数? 2. 回调函数实现机制 3. 回调函数用途 4. 回调函数示例 异步与同步 1. 什么是异步与同步? 2. 同步示例 3. 异步示例一 4. 异步示例二 异步的实现 1. 回调函数的同步示例 2. 异步事件示例 3. 异步示例截图 Promise基础 1. 什么是Promise ? 2. Promise特点 3. 异步的缺点 4. Promise保证异步顺序 经过前面两天的学习,已经对Node.js有了一个初步的认识,今天继续学习其他内容,并加以整理分享,

  • js基础之DOM中document对象的常用属性方法详解

    -----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.anchors  返回对文档中所有 Anchor 对象的引用.还有document.links/document.forms/document.images等 2  document.URL       返回当前文档的url 3  document.title       返回当前文档的标题 4  do

  • node.js express框架实现文件上传与下载功能实例详解

    本文实例讲述了node.js express框架实现文件上传与下载功能.分享给大家供大家参考,具体如下: 背景 昨天吉视传媒的客户对IPS信息发布系统又提了一个新需求,就是发布端发送消息时需要支持附件的上传,而接收端可以对发布端上传的附件进行下载:接收端回复消息时也需要支持上传附件,发布端可以对所有接收端上传的附件进行打包下载. 功能实现 前台部分 前台使用webUploader插件即可,这是百度开发的一款文件上传组件,具体使用查看它的API即可.这个项目之前开发的时候前台使用了angular.

  • node.js中TCP Socket多进程间的消息推送示例详解

    前言 前段时间接到了一个支付中转服务的需求,即支付数据通过http接口传到中转服务器,中转服务器将支付数据发送到异构后台(Lua)的指定tcp socket. 一开始评估的时候感觉蛮简单的,就是http server和tcp server间的通信,不是一个Event实例就能解决的状态管理问题吗?注册一个事件A用于消息传递,在socket连接时注册唯一的ID,然后在http接收到数据时,emit事件A:在监听到事件A时,在tcp server中寻找指定ID对应的socket处理该数据即可. 尽管n

  • js实现无刷新监听URL的变化示例代码详解

    无刷新改变路由的两种方法通过hash改变路由 代码 window.location.hash='edit' 效果 http://xxxx/#edit 通过history改变路由 history.back(): 返回浏览器会话历史中的上一页,跟浏览器的回退按钮功能相同 history.forward():指向浏览器会话历史中的下一页,跟浏览器的前进按钮相同 history.go(): 可以跳转到浏览器会话历史中的指定的某一个记录页 history.pushState()可以将给定的数据压入到浏览器

  • node.js基础模块http、网页分析工具cherrio实现爬虫

    一.前言       说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路径对应网页资源,然后使用cherrio分析. 这里我主要学习过的案例自己敲了一遍,加深理解.在coding的过程中,我第一次把jq获取后的对象直接用forEach遍历,直接报错,是因为jq没有对应的这个方法,只有js数组可以调用. 二.知识点     ①:superagent抓去网页工具.我暂时未用到.     ②:cherrio

随机推荐