模块化
什么是模块化
CommonJS模块是为Nodejs打包JavaScript代码的原始方式。Nodejs还支持浏览器和其他JavaScript运行时使用的ECMAScript模块标准
在Nodejs中,每个文件都被视为一个单独的模块
项目是由多个模块文件组成的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eFe6wlXw-1691295750784)(.\项目模块.png)]
好处: 提高代码复用性,按需加载,独立作用域
使用: 需要标准语法导出和导入进行使用
CommonJS标准
定义utils.js模块,封装基地址和数组总和的函数
导出 module.exports = {}
导入 require('模块名路径')
模块路径
内置模块 直接写名字 fs,path,http
自定义模块 写模块文件路径 ./utils.js
ECMAScript标准
默认导入导出
封装基地址和数组总和的函数
默认导出 export default {}
导入 import 变量名 from '模块名或路径'
注意 Nodejs默认支持Commonjs标准语法
如果使用ECMAScript 标准语法 在运行模块所在文件夹新建package.json 设置{type:'module'}
命名导入和导出
导出 export 修饰定义的语句
导入 import {同名变量} from '模块名或路径'
按需加载 使用命名导出和导入
全部加载 使用默认导出和导入
包
包:将模块,代码,其他资料 聚合成一个文件夹
分类:
-
项目包:主要用于编写项目和业务逻辑
-
软件包 封装工具和方法进行使用
要求:根目录中,必须由package.json文件(记录包的清单信息)
导入软件包时,引入的默认是index.js模块文件 /main属性指定的模块文件
案例:封装数组求和函数的模块 判断用户名和密码长度函数的模块 形成一个软件包
package.json 作用 记录软件包的名字,作者,入口文件等信息
导入一个包文件夹的时候 导入的是index.js文件
npm-软件包管理器
npm是Nodejs标准的软件包管理器
使用:
- 初始化清单文件 npm init -y (得到package.json 文件)
- 下载软件包 npm i 软件包名称
- 使用软件包
npm 安装所有依赖
项目中不包含node_modules 不能正常运行 ,缺少依赖的本地软件包
下载所有的依赖 npm i
下载package.json中记录的所有软件包
npm 全局软件包 nodemon
软件包区别:
- 本地软件包 :当前项目内使用,封装属性和方法,存在于node_modules
- 全局软件包: 本机所有项目使用,封装命令和工具,存在于系统设置的位置
nodemon 作用 替代node命令,检测代码更改 自动重启程序
使用:
1.安装 : npm i nodemon -g (-g 代表安装到全局环境中)
- 运行: nodemon 待执行的目标js文件
常用命令
执行js文件 node xxx
初始化package.json npm init -y
下载本地软件包 npm i 软件包名 npm install 软件包名
下载全局软件包 npm i 软件包名 -g npm install 软件包名 -g
删除软件包 npm uni 软件包名 npm uninstall 软件包名 -g
Express–框架
基于Nodejs平台 快速,开放 极简的web开发框架
概念:使用express 本地软件包,快速搭建web服务(基于http模块)
功能: 提供数据接口 提供网页资源
使用:
- 下载express软件包
- 导入express创建web服务对象
- 监听请求方法和请求路径
- 对其他请求方法和请求路径,默认返回404提示
- 监听端口号,启动web服务,在浏览器测试