node学习--常用模块

Node的用处在于它本身提供的一系列的功能模块,用于与操作系统互动。常用内置模块如下:

path:处理文件路径

fs:  操作文件系统

child_process: 新建子进程

util: 提供一系列的实用小工具

http: 提供HTTP服务器功能

url:用于解析URL

querystring:解析URL中的查询字符串

crypto:提供加密和解密功能

注:包名如果跟内置模块重名,会优先加载内置模块,最好不要重名

在D:nodejs/node/1.js  新建一个1.js文件

1.在path文件操作的过程中,都必须使用物理路径(绝对路径)

常用的方法:

.join()   拼合路径

举例:

const path = require("path");

const temp = path.join(‘/bar‘,‘foor‘,‘/read/user‘);
console.log(temp);  // 输出 \bar\foor\read\user

const temp1 = path.join(__dirname,‘李白.txt‘);  // __dirname 这个js文件所在的路径,不包括 /fileName.js 这部分
console.log(temp1);  //输出 D:\nodejs\node\李白.txt

.basename()  获取文件路径下这个文件的名字

const temp1 = path.join(__dirname,‘李白.txt‘);

console.log(path.basename(temp1));  //输出  李白.txt

console.log(path.basename(temp1,‘.txt‘)) // 输出不带后缀名的文件名  输出 李白

其实相当于切掉最后一块 console.log(path.basename(temp1,‘t‘))  //输出 李白.tx

属性  .delimiter  获取不同操作系统中默认的路径分隔符  windows是; Linux是:

const path = require("path");

console.log(path.delimiter);   //这里用windows 输出为 ;
 //process.env 获取环境变量 ,其中有个path对象,得到环境变量的路径将其分隔
console.log(process.env.PATH.split(path.delimiter));

.dirname()     .extname()

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

//获取文件目录名称
console.log(path.dirname(temp1));   //输出  D:\nodejs\node

//获取文件中的扩展名
console.log(path.extname(temp1));  //输出    .txt

.parse()  将 一个路径字符串转化为一个对象(包含文件目录,文件名,扩展名)

.format() 将文件对象转换为字符串

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

console.log(path.parse(temp1));

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

const obj =  path.parse(temp1);
console.log(path.format(obj));
 

isAbsolute()  判断一个路径是不是绝对路径,返回值是true/false

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘);
console.log(path.isAbsolute(temp1));       //true
console.log(path.isAbsolute("../etc/isAbsolute"));    //false

2.文件操作 fs

readFile() 异步读取文件   readFile()

读取文件时没有指定编码默认读取的是一个Buffer(缓冲区),缓冲区就是内存中操作数据的容器,通过缓存区可以很方便的操作二进制数据,而且大文件操作时必须有缓存区。因为在Node中操作数据、网络通信是没有办法完全以字符串的方式操作的,所以用node实现了缓存区。

举例:

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

const fs = require(‘fs‘);
fs.readFile(temp1,‘utf-8‘,(error,data) => {  //加上编码,以文本方式读取,不会输出16进制
    console.log(data);
}); 

文件编码:windows 默认是gbk编码,但是 node不支持,统一使用utf-8编码

文件太大,读文件会出现卡顿,可以使用readline 模块

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

const fs = require(‘fs‘);
const readline = require(‘readline‘);

//以流的方式读取文件
let streamReader = fs.createReadStream(temp1);

let data = ‘‘;
streamReader.on(‘data‘,(chunk) => {
   //chunk只是文档的一个片段,不完整
   data += chunk.toString();
});
streamReader.on("end",() => {
    //通知你已经结束了,此时data是完整的
    console.log(data);
})

输出为:

单行读取文件

const path = require("path");
const temp1 = path.join(__dirname,‘李白.txt‘); 

const fs = require(‘fs‘);
const readline = require(‘readline‘);
let streamReader = fs.createReadStream(temp1);

//利用readline 读取
let rl = readline.createInterface({
   input:streamReader
});

rl.on("line",(line) => {
    console.log(`单行的内容为:${line}`);
})

输出为:

时间: 2024-08-05 09:52:34

node学习--常用模块的相关文章

Node学习HTTP模块(HTTP 服务器与客户端)

Node学习HTTP模块(HTTP 服务器与客户端) Node.js 标准库提供了 http 模块,其中封装了一个高效的 HTTP 服务器和一个简易的HTTP 客户端.http.Server 是一个基于事件的 HTTP 服务器,它的核心由 Node.js 下层 C++部分实现,而接口由JavaScript封装,兼顾了高性能与简易性.http.request 则是一个HTTP 客户端工具,用于向 HTTP 服务器发起请求. 'http'模块提供两种使用方式: 作为服务端使用时,创建一个HTTP服务

Node学习之----模块机制篇

我们来看张图, 看node与W3C组织.CommonJS组织.ECMAScript之间的关系. Node借鉴来CommonJS的Modules规范实现了一套非常易用的模块系统,NPM对Packages规范的完好支持使得Node应用在开发过程中事半功倍. 一.CommonJS 的模块规范 CommonJS中的大部分规范涵盖了模块.二进制.Buffer.字符集编码.I/O流.进程环境.文件系统.套接字.单元测试.Web服务器网关接口.包管理等. 1. 模块引用模块示例代码如下: var math =

node.js 常用模块(初级)

最近开始学习node.js啦,这里记录一下我用过的一些node模块. 1. Express  最最常用的web开发框架. 2. Koa  由Express原班人马打造的新一代web开发框架 3. bodyparser Express的中间件,解决post请求参数获取问题 4. cookie-parser  Express的中间件,方便操作客户端中的cookie值 5. express-session  Express的中间件,用来创建session. 6. jsonwebtoken  简称jwt

node js 常用模块

前100个依赖库里,underscore是属于语言基础类,express是服务器框架,有5.6个测试框架.以及5.6个递归遍历目录树的工具类.3个左右的命令行解析工具类,3个主流数据库的链接client库,2个ws库,多个js/CSS前端处理工具链,3-4个promise库,多个模版库,多个jquery/cavans/dom模拟器以及解析器,一个静态分析器,两个验证库 总得来说,node.js的前100个流行模块应该就可以代表node.js解决问题的问题域 ===================

python学习-常用模块-os,random,logging

os模块(补充中) 1.查看当前路径及切换路径 >>> import os>>> os.getcwd() #获取当前文件所在的路径'D:\\python\\Lib\\idlelib'>>> os.chdir('../') #切换当上一层目录,此处可以是相对路径>>> os.getcwd()'D:\\python\\Lib' >>> os.chdir('D:\Program Files (x86)') #也可以是绝对路

python学习- 常用模块与re正则

开发一个简单的python计算器 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式(不能调用eval等类似功能偷懒实现),运算后得出结果,结果必须与真实的计算器所得出的结果一致 1 import sys 2 import re 3 4 def welcome_fun

python学习——常用模块

random模块 time模块 sys模块 os模块 取随机数的模块import random #去随机小数:数学计算 import random print(random.random()) #去0~1之间 print(random.uniform(1,2)) # 去范围内的小数 #去随机整数# 应用:彩票,抽奖 import randomprint(random.randint(1,2)) #[1,2]顾头也顾尾 print(random.randrange(1,2)) # [1,2)顾头不

python学习-常用模块8-操作excel,操作写、查、改

一.写excelimport xlwt #只能写excel book = xlwt.Workbook() #创建excelsheet = book.add_sheet('sru_info')#加一个sheet页sheet.write(0,0,'学生编号')sheet.write(0,1,'学生姓名')sheet.write(0,2,'成绩')sheet.write(1,0,'1')sheet.write(1,1,'李广')sheet.write(1,2,'98.2')book.save('stu

Day5 - Python基础5 常用模块学习

Python 之路 Day5 - 常用模块学习 本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configparser hashlib subprocess logging模块 re正则表达式 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,