文章目录
一、node.js使用
在VSCode集成终端中,输入node xxx.js,回车即可执行
二、fs模块–读写文件
- 模块:类似于插件,封装了方法/属性
- fs模块:封装了与本机文件交互的方法属性
1、语法
- 加载fs对象
- 写入文件内容
- 读取文件内容
data是buffer 16 进制数据流对象
.toString() 转换成字符串
三、path模块–路径处理
Node.js代码中,相对路径是根据终端所在路径来查找的,可能无法找到你想要的文件
建议:在Node.js代码中,使用绝对路径
补充:__dirname内置变量**(获取当前模块目录–绝对路径)**
但是由于不同平台的分隔符也不同,所以:
path.join()会使用特定于平台的分隔符,作为界定符,将所有给定的路径片段连接在一起
1、语法
- 加载path模块
- 使用path.join方法,拼接路径
四、URL中的端口号
- 标记服务器里不同功能的服务程序
- 范围:0~65535之间的任意整数
橙色部分即为端口号
注意:http协议,默认访问80端口
1、常见的服务程序
五、http模块–创建web服务
需求:创建web服务并响应内容给浏览器
步骤:
- 加载http模块,创建Web服务对象
- 监听request请求事件,设置响应头和响应体
- 配置端口号并启动web服务
- 浏览器请求http://localhost:3000测试
六、什么是模块化
- 概念:项目是由很多个模块文件组成的
- 好处:提高代码复用性,按需加载,独立作用域
- 使用:需要标准语法导出和导入进行使用
1、CommonJs标准
案例需求:定义utils.js模块,封装基地址和求数组总和的函数
- 使用:
- 1、导出:module.wxports = {}
- 2、导入:require(‘模块名或路径’)
- 内置模块:直接写名字
- 自定义模块:写模块路径
2、ECMA标准 - 默认导出和导入
案例需求:封装并导出基地址和求数组元素和的函数
- 使用:
- 1、导出:export default {}
- 2、导入:import 变量名 from ‘模块名或路径’
注意:如需使用ECMAScript标准语法,在运行模块所在文件夹新建package.json文件,并设置{“type”:“module”}
3、ECMA标准 - 命名导出和导入
案例需求:封装并导出基地址和求数组元素和的函数
-
命名标准使用:、
- 1、导出:export 修饰定义语句
- 2、导入:import{同名变量} from ‘模块或路径’
-
如何选择命名还是默认:
- 按需加载:使用命名
- 全部加载:使用默认
七、包的概念
- 将模块,代码,其他资料聚合成一个文件夹
utils就是一个包
- 包分类:
- 项目包:主要用于编写项目和运行逻辑
- 软件包:封装工具和方法进行使用
要求:根目录中,必须有package.json (记录包的清单信息)
注意:导入软件包时,引入的默认是index,js模块文件/main属性指定的模块文件
案例需求:封装数组求和函数的模块,判断用户名和密码长度函数的模块,形成一个软件包
八、npm - 软件包管理器
使用它就可以下载一些Node.js软件包
- 使用
- 1、初始化清单文件:npm init -y (得到package.json文件,有则略过此命令)
- 2、下载软件包:npm i 软件包名称
- 3、使用软件包
九、npm - 安装所有依赖
- 问题:项目中不包含node_modules,能否正常运行
- 答案:不能,因为缺少依赖的本地软件包
- 解决方式:项目终端输入命令:npm i
- 即下载package.json中记录的所有软件包
十、npm全局软件包nodemon
1、软件包区别
- 本地:当前项目内使用,封装属性和方法,存在于node_modules
- 全局:本机所有项目使用,封装命令和工具,存在于系统设置的位置
modemon作用:代替node命令,检测代码更改,自动重启程序
2、使用
- 1、安装npm i nodemon -g(-g代表安装到全局环境中)
- 2、运行:nodemon待执行的目标js文件
nodemon好处,可以检测代码更改,自动重新运行程序