当前位置:网站首页>3.nodejs--模块化
3.nodejs--模块化
2022-07-30 02:42:00 【爱喝珍珠奶茶】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
1.模块化语法
(1)模块化概念
在nodejs中,应用由模块组成,nodejs中采用commonJS模块规范。
require语法:把一系列相类似的功能封装到一个模块中,然后供使用
(2)模块化分类
(1)内置模块/核心模块
由 node 本身提供,不需要单独安装(npm),可直接引入使用
例如:
var fs=require("fs")
(2)第三方模块
由社区或个人提供,需要通过npm安装后使用。需要在文件夹的地址栏中输入cmd,然后在小黑窗口里面输入npm i mime下载。
例如:
var mine=require("mime")
(3)自定义模块
由自己本人创建定义的
注意:自定义模块的路径必须以
./获取../开头,后面跟创建文件的后缀名例如:
var myquerystring=require("./myquerystring.js")
2.模块的导入与导出
(1)模块导入
(1)通过
require("fs")来加载模块require("fs1") 解释: (1)去当前项目中的node_modules文件夹中找fs1文件夹 中的package.json中main字段 对应的路径 然后引入 (2)没有就去node的安装包中的全局安装路径中找 (3)还是没有找到 就去核心库(2)如果是第三方模块,需要先使用npm进行下载
(3)如果是自定义模块,需要加上相对路径
./或者../,可以省略.js后缀,如果文件名是index.js那么index.js也可以省略。(4)模块可以被多次加载,但是只会在第一次加载
(2)模块导出
在模块的内部,
module变量代表的就是当前模块,它的exports属性就是对外的接口,加载某个模块,加载的就是module.exports属性,这个属性指向一个空的对象。
3.npm和项目配置文件package.json文件
(1)npm
npm:提供项目中模块/插件的 下载相关功能
(1)下载(常用)
npm i/install 模块名字/模块名字@版本号
npm i [email protected]
npm i 模块名 //安装到本地
npm i 模块名 -g//安装到全局
npm i 模块名 --save//安装到项目依赖
npm i 这个指令 会去项目的配置文件中找到依赖的包 全部下载
npm run dev 这个指令 会去项目的配置文件中找到scripts字段 运行里面的dev指令
(2)更新/删除
npm update 模块名 //帮你更新到最新版本
npm update 模块名@版本 //帮你更新到指定版本
npm uninstall 模块名 //删除模块
(2)package.json 文件
(1)每一个项目 构建时 先构建一个package.json文件 它代表了这个项目的一些结构和配置信息(项目的清单)
(2)构建指令: 在项目文件夹下 npm init -y 初始化一个项目清单文件 npm i 是按照项目清单文件去安装所有的依赖项
package.json 文件:项目的配置文件 用于记录整个项目的一些信息
项目名==>项目的名字
作者信息:
"scripts":{"dev":"node index.js"} 启动指令 主要用于小黑窗的npm启动 npm run dev
"dependencies" 项目依赖
边栏推荐
- 奥比中光高级副总裁王兆民离职 董事会秘书暂未取得资格证
- 一个塑料瓶的海洋“奇幻漂流”
- 一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
- go grpc custom interceptor
- 【C语言刷LeetCode】2295. 替换数组中的元素(M)
- 单片机没有随机数发生器如何生成随机数——2022.07.26
- 复合类型--引用,指针
- ESP8266 +0.96" I2C OLED Dial Clock
- Not enough information to list load addresses in the image map.(STM32编译报错)
- Docker installs MySQL with one click
猜你喜欢
随机推荐
Using ESP32 construct a ZIGBEE network adapter
综合设计一个OPPO页面--返回顶部使用--使用链接的锚点a+id
The display and hiding of widgets for flutter learning
c语言进阶篇:指针(四)
测试/开发程序员面试该如何谈薪资待遇呢?突破这个坎......
ESP8266 +0.96" I2C OLED Dial Clock
Tibetan Mapping
error: 'filesystem' is not a member of 'std'
复星医药募资44.84亿:高毅资产认购20亿 成第三大股东
音视频开发的正确(学习思路+技术指导)
OSPF shamlink 解决后门链路问题
[Andrioid开发] Splash界面/用户协议与隐私政策弹窗/界面开发
力扣刷题训练(二)
一文读懂Elephant Swap,为何为ePLATO带来如此高的溢价?
Docker一键安装MySQL
杜教筛【莫比乌斯前缀和,欧拉函数前缀和】推导与模板【一千五百字】
A plastic bottle of ocean "fantasy drifting"
JNPF3.4.2 system upgrade announcement
el-table sum total
golang的channel实现原理








