node.js作用
基于浏览器V8引擎封装,独立执行js文件的集成环境
与浏览器的最大区别
没有BOM和DOM
集成前端开发
编写后端程序
执行js语法 node 文件名.js
fs模块-读写文件
封装了语法和属性
fs模块封装了与本机文件系统交互的,方法/属性
语法
- 加载fs模块对象
- 写入文件内容
- 读取文件内容
data数据中转出BUFFER数据流
通过函数toString()转化成文字型
path模块 文件处理
建议:使用绝对路径
补充:_dirname内置变量(获取当前模块目录-绝对路径)
path.join()会使用特定于平台的分隔符.作为定界符把给定的所有路径片段链接在一起
语法
1.加载path模块
2.使用path.join()方法拼接路径
使用
案例
压缩前端html
- 读取html文件
- 正则替换字符串
- 写入到新的html文件
需求:把回车符\r换行符\n去掉
URL端口号
简称网址
数字就是端口号
端口号:标记服务器里不同功能的服务程序
端口号范围:0-65535之间的任意数字
HTTP协议默认访问80端口
常见的服务程序
web服务程序:用于提供网上信息浏览功能
注意:0-1023和一些特定的端口号被占用自己编写尽量避免
http模块创建web服务
需求:创建web服务并相应内容给服务器
步骤:
- 加载http模块,创建web服务对象
- 监听respect请求事件,设置响应头和响应体
- 配置端口号,并启动web服务
- 浏览器请求http://localhost:3000测试
效果
终止服务Ctrl+C
浏览时钟
- 步骤
- 基于http模块创建web服务
- 使用req.url获取请求资源路径,判断并读取index.html里字符串内容返回给请求方
- 其他路径暂时返回不存在提醒
- 运行web服务,用浏览器发起请求测试
模块化
在node.js文件中,每个文件单独被视为一个单独的模块
概念:项目是由很多个模块文件组成的
好处提高代码复用性,按需加载独立作用域
使用:需要标准语法进行导入导出
commonjs标准
需求定义js模块,封装基地址和求数组和的函数
进行导入导出
导出:module.exports={}
导入:require(‘模块名和路径’)
内置直接写
自定义直接写文件路径
ecmascript标准
- 导出:export default{}
- import变量名from’模块名或路径’
和vue相同
不能直接运行需要package.json
导出
导入
配置package.json
命名导入导出(类似于解构)
:按需导出导入
导出:想要哪个常量导出在谁前面添加export
导入:import{同变量名}from’模块名或路径’
包的概念
将模块,代码,其他资料聚合成一个文件夹
- 项目包:主要用于编写项目和业务逻辑
- 软件包:封装工具和方法进行使用
- 要求:根目录中必须有package.json文件(记录包的清单信息)
注意
npm软件包管理器
- 初始化清单文件:npm init -y(得到package.json文件)
- 下载软件包: npm i 软件包名称
- 使用软件包
需求
使用dayjs软件包来格式化日期
npm -安装所有依赖
用途
当我们下载其他项目文件缺少依赖无法运行
而且通过npm下载比磁盘传递更快
解决npm i
会下载package.json中记录的所有包
npm-全局软件包 nodemon
软件包区别
本地软件包:当前项目内使用,封装属性和方法,存在于node_modules
全局软件包:本机所有项目使用,封装命令和工具,存在于系统设置位置
nodemon作用:替代node 命令,监测代码更改,自动重启程序
使用
安装:npm i nodemon -g(-g作用为安装到全局环境中)
运行:nodemon待执行的目标js文件
node.js总结
1.模块化
2.包
3.常用命令
到全局环境中)
运行:nodemon待执行的目标js文件