前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nodeJs基础Api

nodeJs基础Api

作者头像
切图仔
发布2022-09-14 15:12:15
3120
发布2022-09-14 15:12:15
举报
文章被收录于专栏:生如夏花绚烂
path

1.normaliz:将不规则的路径转换为正常路径

代码语言:javascript
复制
const  {normalize} = require('path')
console.log(normalize('./test//b/c'))
//test/b/c

2.join:拼接路径

代码语言:javascript
复制
const  {normalize,join} = require('path')
console.log(join('usr/','test','test/'))
//usr/test/test

3.resolve:返回绝对路径

代码语言:javascript
复制
const  {normalize,join,resolve} = require('path')
console.log(resolve('./'))

4.文件相关

代码语言:javascript
复制
const  {basename,dirname,extname} = require('path') 

console.log(basename('./path.js'))// 文件名(path.js)
console.log(dirname('./path.js'))// 路径 (.)
console.log(extname('./path.js'))//文件扩展名 .js

console.log(__dirname);//当前文件所在目录(绝对路径)
fs

1.readfile:读取文件

代码语言:javascript
复制
const fs = require('fs')
fs.readFile('./path.js','utf8',(err,data)=>{
    console.log(data.toString())
})

2.writeFile:写入文件

代码语言:javascript
复制
const fs = require('fs')
fs.writeFile('./1.txt','THis is file',{
    encoding:'utf8'
},err=>{
    console.log('done')
})

3.stat:返回文件信息

代码语言:javascript
复制
const fs = require('fs')
fs.stat('./path.js',(err,stats)=>{
    console.log(stats)
})

4.其他文件操作

代码语言:javascript
复制
fs.rename('./test','test.js',err=>{
})
//删除
fs.unlink('./1,txt',err=>{
})
//读文件夹
fs.readdir('./',err,files=>{
    //当前路径所有文件夹
})
//监视/文件/文件夹
fs.watch('./',{
    recursive:true//是否递归监听
}(eventType,filenname)=>{
    eventType:文件操作类型
})

5.文件流相关

代码语言:javascript
复制
//以流的方式读取文件
const fs = require('fs')
const rs = fs.createReadStream('./1.txt')//创建一个文件流
rs.pipe(process.stdout)//向控制台导出文件流
// console.log(rs)
代码语言:javascript
复制
//以流的方式写入文件
const fs = require('fs')
const ws = fs.createWriteStream('./1.txt');
ws.write('test')
ws.end()
代码语言:javascript
复制
//读写流
const fs = require('fs')
const zlib = require('zlib')

let rs = fs.createReadStream('1.jpg')
let gz = zlib.createGzip();
let ws = fs.createWriteStream('1.gz')

rs.pipe(gz).pipe(ws) 

rs.on('error',err=>{
    console.log(err);
})
ws.on('finish',()=>(){
    console.log('完成');
})

6.解决文件读取地狱回调

代码语言:javascript
复制
const fs = require('fs')
const {promisify} = require('util')

const read = promisify(fs.readFile);//读取文件,改成promise

async function test(){
    const content = await read ('./path.js');
    //同步方式异步,直接读取文件
    console.log(content.toString())
}
test()
Buffer

处理二进制数据流,类似整数数组,大小固定

代码语言:javascript
复制
Buffer.alloc(10)//创建一个buffer10个字节,用0填充
Buffer.from([1,2,3])//创建填充1,2,3
Buffer.from('test')//创建buffer填充test
Buffer.byteLength('test')//计算字节数,一个中文占3个字节
Buffer.isBuffer({}//判断对象是否为Buffer
Buffer.concat()//拼接Buffer

实例化buffer方法

代码语言:javascript
复制
const bf = Buffer.from('r')
bf.length//字节长度与多少东西无关,与创建大小有关
bf.toString()//二进制转换字符串
bf.fill()//向buffer填充其他
bf.equals(bf5)//判断buf内容是否相同
bg.indexOf('es')//判断是否存在es存在返回1不存在返回-1

Buffer中文乱码

代码语言:javascript
复制
const {StringDecoder}= require('string_decoder')
const decoder = new StringDecoder('utf8')
console.log(decoder.write("订单"))
Events

所有能够触发事件的对象都是EventEmitter类的实例,这个对象开放了EventEmitter.on()函数允许将一个或多个函数绑定到被对象触发的命名事件上。

代码语言:javascript
复制
const EventEmitter = require('events');

class Event extends EventEmitter {
    
}
const ce = new Event();
//定义事件test
ce.on('test',()=>{
    console.log('4')
})
ce.emit('test')//触发事件返回结果 4

一次性事件

代码语言:javascript
复制
ce.once('test',(){
    console.log('test')
})
ce.emit('test')

移除事件

代码语言:javascript
复制
function fn1(){
    
}
function fn2(){
    
}
ce.on('test',fn1)
ce.on('test',fn2)

ce.removeListener('test',fn2);//一次单个事件
    ce.remoceAllListener('test')移除全部//移除全部
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • path
  • fs
  • Buffer
  • Events
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档