Nodejs
可用于开发服务端应用、开发工具类应用、开发桌面端应用;nodejs是ecmscript的核心语法,nodejs中不能使用BOM和DOM的API,他的顶层对象是global,可以用globalThis访问顶层对象;可以用console和定时器API。
Buffer(缓冲器)
本质上是一段内存空间,用于处理二进制内存数据,用于表示固定长度的字节序列,可用toString()转换为字符。
特点:
大小固定且无法调整;性能较好,可以直接对计算机内存进行操作;每个元素大小为1字节.
创建:
Buffer.alloc(10); Buffer.allocUnsafe(10);Buffer.from(‘hello’);Buffer.from([105,108,101])
fs模块(文件系统)
fs是nodejs中的内置模块;可以对计算机中的磁盘进行操作.
使用:require(‘fs’);
- 写入(当需要持久化保存数据的时候,应该想到文件写入)
异步: writeFile(文件名,写入的数据,可选项配置,回调函数)
同步:writeFileSync(文件名,写入的数据,可选项配置)
文件尾部追加异步:appendFile(文件名,写入的数据,回调函数)
文件尾部追加同步:appendFileSync(文件名,写入的数据)
流式写入: createWriteStream(文件路径,可选项配置)
2.文件读取
异步读取:readFile(文件路径,选项配置,回调函数)
同步读取: readFileSync(文件路径,选项配置)
流式读取:createReadStream(文件路径,选项配置)
3、重命名、移动
异步:rename(文件的当前路径,文件的新路径,回调函数)
同步:renameSync(文件的当前路径,文件的新路径)
4、文件删除
异步删除:unlink(文件路径,回调函数)
同步删除:unlinkSync(文件路径)
常用的:rm(文件路径,回调函数)
5、文件夹操作
6、相对路径(./、…/)、绝对路径(//、/)
7、__dirname保存当前文件所在目录的绝对路径;是Nodejs环境中的内置变量,常用于与文件名拼接成绝对路径。
path模块,操作路径
使用:const path = require(‘path’)
http(超文本传输协议)
使用:
模块化
模块化有点:高复用性;防止命名冲突;高维护性
使用: module.export和require();
自定义的模块导入时,建议使用相对路径
使用时有几点注意: module.exports 可以暴露 任意数据 不能使用 exports = value 的形式暴露数据,模块内部module 与 exports 的隐式关系 exports = module.exports = {} ,require返回的是目标模块中 module.exports 的值
require导入模板的基本流程:
将相对路径转为绝对路径,定位目标文件
缓存检测
读取目标文件代码
自执行函数,通过arguments.callee.toString()查看自执行函数
缓存模块的值
返回module.exports的值
nodemon包
自动重启 node 应用程序插件
npm i -g nodemon
npm 和 yarn(包管理工具)
发布一个自己的npm包的流程
1、创建文件,使用module.export暴露插件函数
2、npm init -y初始化包,填写包的信息,版本号等
3、官网注册激活账号
4、运行npm login登录
5、运行npm publish发布
更新包:注意修改版本号然后,npm publish发布
删除包:npm unpublish (发布的24小时内可删)
express 官网
基于Nodejs开发的极简的web应用开发框架;是一个封装好的工具包,封装了很多功能。
express generator项目生成器项目,具体步骤看官网
重点记录一下express中间件:
中间件本质是一个回调函数,可以像路由一样访问请求对象(request),响应对象(response);用于提取公共的函数,简化代码。
全局中间件:每一个请求到达服务器之后都会执行全局中间件函数;express允许定义多个全局中间件。
路由中间件:对某一些路由进行功能封装使用
EJS模板引擎:用于分离用户界面和业务数据的技术
EJS官网
常用语法:
//需要执行的js代码
<% js代码 %>
//取值的
<%= 变量 %>