目录

  • 1.path模块
    • 1.1 normalize
    • 1.2 join
    • 1.3 resolve
    • 1.4 extname
    • 1.5 basename
    • 1.6 dirname
    • 1.7 parse
    • 1.8 format
  • 2.fs模块
    • 2.1 readFile
    • 2.2 writeFile
  • 3.buffer
  • 4.events
  • 5.http模块
    • 5.1 get请求
    • 5.2 post请求

1.path模块

const path = require('path')

1.1 normalize

将字符串处理成路径

const nor = path.normalize('a/b/c///d\\\w')
console.log(nor)
// a\b\c\d\w

1.2 join

合并路径

const join = path.join('/wq/w', 'we///w')
console.log(join)
// \wq\w\we\w

1.3 resolve

将路径返回为绝对路径

const resolve = path.resolve('/s/sd')
console.log(resolve)
// D:\s\sd

1.4 extname

返回该路径下的文件名的后缀

const ext = path.extname('/a/s/c.txt')
console.log(ext)
// .txt

1.5 basename

返回该路径下的文件名

const basename = path.basename('/a/s/c.txt')
console.log(basename)
// c.txt

1.6 dirname

返回当前目录

const dir = path.dirname('/a/s/c.txt')
console.log(dir)
// /a/s

1.7 parse

将路径进行解析

  • root
  • dir
  • base
  • ext
  • name
const par = path.parse('/a/s/c.txt')
console.log(par)
// { root: '/', dir: '/a/s', base: 'c.txt', ext: '.txt', name: 'c' }

1.8 format

与parse相反,将对象解析成路径

const format = path.format({ root: '/', dir: '/a/s', base: 'c.txt', ext: '.txt', name: 'c' })
console.log(format)
// /a/s\c.txt

2.fs模块

const fs = require('fs')

2.1 readFile

文件读取

fs.readFile('./a.txt', (err, data) => {if (err) {return console.error(err)}console.log(data.toString())
})

2.2 writeFile

文件写入,不管写入成功还是写入失败都会执行后面的回调函数

fs.writeFile('./a.txt', 'asdasd', (err) => {if (err) {return console.error(err)}console.log('写入成功')
})

3.buffer

  • buffer用来处理二进制数据流
  • buffer实例类似数组,大小是固定的
  • buffer是使用c++代码在v8堆外分配的物理内存
  • buffer是一个全局变量
const { Buffer } = require('buffer');// 创建长度为 10 的以零填充的缓冲区。
const buf1 = Buffer.alloc(10);// 创建长度为 10 的缓冲区,
// 使用值为 `1` 的字节填充。
const buf2 = Buffer.alloc(10, 1);// 创建长度为 10 的未初始化的缓冲区。
// 这比调用 Buffer.alloc() 快,
// 但返回的缓冲区实例可能包含旧数据,
// 需要使用 fill()、write() 、
// 或其他填充缓冲区内容的函数重写。
const buf3 = Buffer.allocUnsafe(10);// 创建包含字节 [1, 2, 3] 的缓冲区。
const buf4 = Buffer.from([1, 2, 3]);// 创建包含字节 [1, 1, 1, 1] 的缓冲区,
// 所有条目都使用 `(value & 255)` 截断以符合范围 0–255。
const buf5 = Buffer.from([257, 257.5, -255, '1']);// 创建包含字符串 'tést' 的 UTF-8 编码字节的缓冲区:
// [0x74, 0xc3, 0xa9, 0x73, 0x74](十六进制)
// [116, 195, 169, 115, 116](十进制)
const buf6 = Buffer.from('tést');// 创建包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的缓冲区。
const buf7 = Buffer.from('tést', 'latin1');

常用类:

http://nodejs.cn/api/buffer.html#buffer_class_buffer

4.events

事件触发器

const EventEmitter = require('events')class CustEvent extends EventEmitter {}const ce = new CustEvent()

添加一个事件

ce.on('test', () => {console.log('this is a test')
})

执行该事件

ce.emit('test')

移除该事件

  ce.removeAllListener('test')

5.http模块

http模块可搭建web服务器

const http = require('http')const app = http.createServer((req, res) => {res.write('1111')res.end()
})app.listen(3000, () => {console.log('服务器已启动')
})

5.1 get请求

const http = require('http')
const url = require('url')const app = http.createServer((req, res) => {// 解析请求路径// 如果parse第二个参数不穿true则不解析成对象console.log(url.parse(req.url, true))res.end()
})app.listen(3000, () => {console.log('服务器已启动')
})

当请求路径为

http://localhost:3000/sta/a?id=1&username=tyh

解析后:

Url {protocol: null,slashes: null,auth: null,host: null,port: null,hostname: null,hash: null,search: '?id=1&username=tyh',query: [Object: null prototype] { id: '1', username: 'tyh' },pathname: '/sta/a',path: '/sta/a?id=1&username=tyh',href: '/sta/a?id=1&username=tyh'
}

5.2 post请求

const http = require('http')
// const url = require('url')
const querystring = require('querystring')const app = http.createServer((req, res) => {const path = req.urlconsole.log(path)// console.log(url.parse(req.url, true))if (path === '/reg') {let body = ''req.on('data', (chunk) => {body += chunkconsole.log(body)})req.on('end', () => {body = querystring.parse(body)console.log(body)})}res.end()
})app.listen(3000, () => {console.log('服务器已启动')
})

node.js常用模块相关推荐

  1. Node.js 工具模块

    在 Node.js 模块库中有很多好用的模块.接下来我们为大家介绍几种常用模块的使用: 序号 模块名 & 描述 1 OS 模块 提供基本的系统操作函数. 2 Path 模块 提供了处理和转换文 ...

  2. Node.js:模块查找,引用及缓存机制

    1. Node.js的模块载入方式与机制 Node.js中模块可以通过文件路径或名字获取模块的引用.模块的引用会映射到一个js文件路径,除非它是一个Node内置模块.Node的内置模块公开了一些常用的 ...

  3. Node.js文件系统模块——读写文件操作

    文章目录 前言 一.导入fs模块 1.readFile() && readFileSync() 2.writeFile() && writeFileSync() 3.a ...

  4. JavaScript之后端Web服务器开发Node.JS基本模块学习篇

    JavaScript之后端Web服务器开发Node.JS基本模块学习篇 基本模块 fs文件系统模块 stream支持流模块 http crypto加密模块 基本模块 因为Node.js是运行在服务区端 ...

  5. node.js中模块_在Node.js中需要模块:您需要知道的一切

    node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...

  6. Node.js中模块加载机制

    Node.js中模块加载机制 模块查找规则-当模块拥有路径但没有后缀时 1. require方法根据模块路径查找模块,如果是完整路径,直接引入模块. 2. 如果模块后缀省略,先找同名JS文件再找同名J ...

  7. Node.js Web 模块

    Node.js Web 模块 什么是 Web 服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议. ...

  8. Node.js Domain 模块

    Node.js 工具模块 Node.js Domain(域) 简化异步代码的异常处理,可以捕捉处理try catch无法捕捉的异常.引入 Domain 模块 语法格式如下: var domain = ...

  9. Node.js DNS 模块

    Node.js 工具模块 Node.js DNS 模块用于解析域名.引入 DNS 模块语法格式如下: var dns = require("dns") 方法 序号 方法 & ...

最新文章

  1. 使用主机ip地址绑定GooglAppEngine站点
  2. 使用深度置信网络进行特征提取代码实现 python_2019必学的10大顶级Python库
  3. python有什么用处案例_为什么大家都推荐你学python?看完这5个例子就明白了!...
  4. SDNU 1045.石子合并1(区间dp)
  5. jQuery就业课系列之.jQueryDOM
  6. php 什么时候销毁对象,什么决定什么时候在PHP中销毁类对象?
  7. 普通公司员工的编程水平与阿里巴巴有多大差距?
  8. 利用 Win32 启动和检测 UWP App 的方法
  9. commit git 删除文件夹_Git-git删除文件夹/文件(删除/不删除本地文件/文件夹)
  10. nhibernate源码分析之六: Criteria数据加载
  11. python自动化办公(五)实现将读取的excel数据写到word指定的地方:示例(劳动合同)
  12. Eviews创建散点图的具体方法
  13. SP3485,MAX485
  14. 2021固态硬盘排行前十 十大固态硬盘排名
  15. echarts饼图制作
  16. 计算机毕业设计源码分享双鱼林,双鱼林SSM图书信息管理系统毕业课程设计源码 - WEB源码|源代码 - 源码中国...
  17. 网易考拉海购:电商高并发架构设计的铁律
  18. USACO Section 1.2 Broken Necklace
  19. 计算机科学与技术寒假社会实践,计算机科学与技术专业寒假社会实践报告.doc...
  20. pta 7-7 哪两个点之间的距离最近

热门文章

  1. PMP章节练习—项目经理的角色
  2. 被动与主动信息收集 | 系统性学习 | 无知的我费曼笔记
  3. 微服务架构之服务调用
  4. PYNQ之Jupyter Notebook
  5. 第一次使用ESP8266_01S
  6. 统计学上数据的处理和图标的展示原则
  7. 多个android手机客户端通信,android中利用Socket实现手机客户端与PC端进行通信
  8. 袁萌:收到南京大学录取通知书的那一瞬间
  9. 当你想吃夜宵的时候你会到谁
  10. 银河麒麟系统使用方法