nodejs文档(一)

nrm使用方法

npm的包源默认是官方源,在海外下载速度较慢,使用nrm可以快捷的切换包源
npm i nrm -g 全局安装nrm
nrm ls 查看可选的源
nrm use taobao 切换到淘宝源
nrm test 测试源的响应时间

nodejs中实现ES6模块化规范

在项目的package.json文件内添加配置项"type": “module”,即可试用ES6模块化

http模块用法
  • 创建服务器
http.createServer((req, res) => {
  res.write('hello http')
  res.write('see you http')
  res.end()
}).listen(3000, () => {
  console.log('server start')
})
  • 获取请求url
    req.url 返回的是不url的path,不包含域名端口等
event模块用法

用于实现发布订阅模式

const EventEmitter = require('events')

const event = new EventEmitter()

event.on('play', (data) => {
  console.log('play event has emitting', data)
})

event.emit('play', [200])
fs文件操作模块
  • 创建目录
const fs = require('fs')

fs.mkdir('./avatar', (err) => {
  console.log(err)
})
  • 重命名目录
const fs = require('fs')

fs.rename('./avatar', './avatar2', (err) => {
  console.log(err)
})
  • 删除目录 (空目录)
const fs = require('fs')

fs.rmdir('./avatar2', (err) => {
  console.log(err)
})
  • 创建文件 (有则重写,无则新建)
const fs = require('fs')

fs.writeFile('./avatar/zhaoji.txt', 'hello fs', (err) => {
  console.log(err)
})
  • 追加文件内容
const fs = require('fs')

fs.appendFile('./avatar/zhaoji.txt', '\nmy name is zhaoji', (err) => {
  console.log(err)
})
  • 读取文件内容
const fs = require('fs')

fs.readFile('./avatar/zhaoji.txt', (err, data) => {
  console.log(data.toString())
})
  • 删除文件
const fs = require('fs')

fs.unlink('./avatar/zhaoji.txt', (err) => {
  console.log(err)
})
  • 读取一个目录 (只能读取一层)
const fs = require('fs')

fs.readdir('./avatar', (err, data) => {
  console.log(data)
})
  • 读取文件或目录的详细信息
const fs = require('fs')

fs.stat('./avatar/1.txt', (err, data) => {
  console.log(data.isFile())
})

注意:操作方法后面加Sync即为对应的同步操作方法
require(‘fs’).promises导入的是promsie版本的fs,可以使用then方法进行文件操作

stream流模块

用于实现大文件的分片读写,减小内存占用,特别适用于大文件复制

  • 流模块读文件
const fs = require('fs')

const rs = fs.createReadStream('./avatar/1.txt', 'utf-8')

rs.on('data', chunk => {
  console.log('chunk-', chunk)
})

rs.on('end', () => {
  console.log('end')
})
  • 流模块写文件
const fs = require('fs')

const ws = fs.createWriteStream('./avatar/1.txt', 'utf-8')

ws.write('1111111111111111')
ws.write('2222222222222222')
ws.write('3333333333333333')

ws.end()
  • 流模块复制大文件
const fs = require('fs')

const ws = fs.createWriteStream('./avatar/1.txt', 'utf-8')

const rs = fs.createReadStream('./avatar/dir/2.txt', 'utf-8')

rs.pipe(ws)
zlib模块

用于实现gzip压缩和解压缩文件

const fs = require('fs')

const ws = fs.createWriteStream('./avatar/1.txt', 'utf-8')

const rs = fs.createReadStream('./avatar/dir/2.txt', 'utf-8')

const gzip = require('zlib').createGzip()

rs.pipe(gzip).pipe(ws)
crypto模块

用于提供通用加密和哈希算法,nodejs底层使用c++实现,通过crypto模块暴露为js接口
MD5是一种常用哈希算法,用于给任意数据一个签名,这个签名一般是一个十六进制字符串
注意md5无法反推原始数据

const crypto = require('crypto')

const hash = crypto.createHash('md5')

hash.update('hello md5')

console.log(hash.digest('hex'))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值