1.什么是node
●Nodejs 是一个基于Chrome V8引擎的JavaScript运行环境
●Node.js使用了一个事件驱动。非阻塞式I/O的模型使其轻量又高效
●Node.js的包管理工具npm.是全球最大的开源库生态系统
●官网http://odejs.cn/
●npm插件官网: https://www.pmjs.com/
相信很多初学者刚开始都nodejs都很陌生,其实nodejs一个javascript的运行环境,并且它是基于谷歌V8引擎的,node的特点是非阻塞式的I/O模型
2.node一些内置环境
2.1.path 模块的使用
path模块处理的是磁盘路径,也就是绝对路径
path的方法
path.join(__dirname,相对路径)
下面就是一个使用path模块 简单的打印文件路径的方法
const path = require(' path ' )
// console. log(path); //path对象
const pathJoin= path. join(_ dirname,'a' )
console. log(pathJoin); //路径 G: \201 \me\node\node01\a
2.2.url模块的使用
- url模块
- 目的: 用于处理url路径 (只能用来处理url)
- 方法: 2个
- url.parse() url string => object 获取URL字符串,对其进行解析,然后返回URL对象。
- url.format() url object => string 取URL对象,对其进行解析,然后返回URL字符串。
下面就是一个使用url模块 简单的打印url路径的方法
const url” require( 'url')
/ console.log(url); //url对象
const urlParse url .parse('我喜欢你') //字 符串变对象
// console. log(urlParse); //一个ur1对象 里面其中一项是path: '我喜欢你',
const urlFormat url. format (urlParse)
console. log(urlFormat); //我喜欢你
2.3.fs 文件操作
文件的操作可分为增删改查 ,以下是我为大家详细写的4种方式
创建文件夹mkdir
删除文件夹rmdir
修改文件夹rename
读取文件夹readdir
2.3.1增加文件
writeFile(参1:路径和文件名,参2:文件内容,参3:报错信息)
const pathUrl = path.join(__dirname, './utils/test.txt')
const date = ('呵呵哒')
const mistake = (err) => {
if (err) {
fs.writeFile(path.join(__dirname, '/log/err.log'), err.errno, () => {
if (err);
console.log(err);
})
} //err.errno 是err里面的属性 errno: -4058,1
}
fs.writeFile(pathUrl, date, mistake)
2.3.2删除文件
unlink(参1:路径,参2:错误的回调)
const pathUrl = path.join(__dirname, './utils/test.txt')
fs.unlink(pathUrl,err=>{
if(err);
console.log(err);
})
2.3.3改变文件
readFile(参数1:路径,参数2:'utf8',参3:错误的回调)
const pathUrl = path.join(__dirname, './utils/test.txt')
fs.readFile(pathUrl,'utf8',(err,doc)=>{
if(err) throw err
console.log('doc',doc); //doc参数 是查询成功里面的参数
})
2.3.4查询文件
readFile(参数1:路径,参数2:'utf8',参3:错误的回调)
const pathUrl = path.join(__dirname, './utils/test.txt')
fs.readFile(pathUrl,'utf8',(err,doc)=>{
if(err) throw err
console.log('doc',doc); //doc参数 是查询成功里面的参数
})
2.4.fs 文件夹的操作
文件夹的操作
mkdir 增
rmdir 删
readdir 查
rename 改
2.4.1readdir 查找文件夹
查找文件夹的内容
readdir(参1:路径,参2:回调(参2.1,err,参2.2:file:查找到的内容)
const fs = require( 'fs' )
const path - require( path' )
const pathurl = path. join(_ dirname, '/utils' )
//1 console . log(pathurl);
//1查找文件夹的内容
//1 readdir(参1: 路径,参2: 回调(参2.1, err, 参2.2: file: 查找到的内容)
//1 fs . readdir(pathurl,(err,file)->{
//if(err) throw err
//console.log('file",file); //1 file參數返回的是查找的所有内容
//1 }
2.4.2rmidir 删除文件夹
rmdir(参1:路劲,参2:错误的回调) ,但是删除文件要先用查找文件才可以使用
for(Let i=1;i<=10;i++){
fs .unl ink(path. join(_ dirname, ” . /add/${i}.txt~ ), err => {
if (err) throw err //第一步先删除文件夹里面的10个文件用循环
})
fs . readdir(path. join(_ dirname, ' ./add'), (err, files) => {
if (files.length === 0) {
fs .rmdir(path. join(_ dirname, . ./add'), err = {
if (err) throw err
}
})
2.4.3mkdir 增加文件夹
const fs = require('fs' )
const path = require( ”path' )
// !增
// fs. mkdir(path. join(_ dirname,' ./assets'),(err,path) => {
//if(err)throwerr
// })
2.4.4rename 修改文件夹
const oldpath = path. join(_ dirname,' ./assets' )
const newPath = path. join(_ dirname,' ./css')
/ fs. rename(oldPath,newPath,err => {
//if(err)throwerr
/1 }
2.5 querystring
- querystirng
- 目的: 用于处理url路径中的query字符
- 方法: 四个
- querystring.parse()
- querystring.stringify()
- querystring.escape()
- querystring.unescape()
代码演示如下
const qs = require( "querystring )
const url = require('url')
const str = " http://ww .qinqin. net/ index : php?r=p/d8id=26412144”
const qsobj = qs .parse(url .parse(str) .query)
//console.log( qsobj ) 11 { r: 'p/d”, id: ' 26412144”}
//url.parse(str).query 1/1 r-p/d8id-26412144
const qs5tr - qs.stringify({ r: "p/d", id:” 26412144”
console.log( qsstr )
const city =” id-22&city-北京 //1中文-> 特殊字符|
const citystr = qs.escape( city )
console.log( citystr )
const unesstr = qs . unescape( citystr )
console.log( unesstr )
2.6 . Stream
- 流 zlib
- 完整的数据块分割开,一片一片的使用
- 时间短了、给别的任务提供了可执行的机会
- grunt gulp
- 过程 第一:先解析文件
- 第二:创建一个压缩包
- 第三:把解析压缩完的文件放入压缩包里
const zlib require( 1zlib')
const fs require( fs" )
const path require( path' )
//第一:先解析文件
const reads . fs.createReadstrean(path.join(_ dirnane, ”./test.txt”))
//第二:创建一个压缩包
const writes fs.createwritestrean(path join(_ dirname,' ./yasuo.gz ”))
const ins zlib.create6z ip()
//.第三:把解析压缩完的文件放入压编包里
reads
.pipe( ins )
.pipe( writes )