当前位置:网站首页>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" 项目依赖
边栏推荐
- Hacker News Broadcast | A fake offer steals $625 million
- 超详细的MySQL三万字总结
- Leetcode.19 删链表倒数第 N 个结点(栈/先后指针)
- Detailed explanation of carousel picture 2 - carousel pictures through left positioning
- 详解轮播图二-通过left定位来轮播图片
- The speed of life and death, every second counts
- 【笔记】结巴分词绘制词云图
- 浏览器缓存机制
- 【高性能计算】openMP
- 【C语言刷LeetCode】592. 分数加减运算(M)
猜你喜欢
Leetcode.24 两两交换链表中的节点(递归)
复旦-华盛顿大学EMBA科创的奥E丨《神奇的材料》与被塑造的我们
Linux Jenkins查找缓存文件及删除 (2022-07测试可用)
力扣刷题训练(二)
MPLS VPN跨域-optionC2
1050 graphics card, why is the graphics card usage ranking on Steam always the top five
ButtonStyle, MaterialStateProperty learned by flutter
centOS安装MySQL详解
org.apache.ibatis.binding.BindingException Invalidbound statement (not found)的解决方案和造成原因分析(超详细)
RAII技术学习
随机推荐
【内部资源】冲击年薪30W+的软件测试人员,这份资料必须领取
1050 graphics card, why is the graphics card usage ranking on Steam always the top five
测试/开发程序员面试该如何谈薪资待遇呢?突破这个坎......
uni-app实现跨端开发手机蓝牙接收和发送数据
ESP8266 +0.96“ I2C OLED 表盘时钟
anaconda打开闪退解决
CSDN外链解决方法 (2022-07-28测试可用)
B. Inflation-Educational Codeforces Round 103 (Rated for Div. 2)
每日优鲜生死劫:被曝清退大部分员工 仍未递交年报(附音频)
EL 表达式
go jwt use
A plastic bottle of ocean "fantasy drifting"
快速入门jsp
win11 自带远程桌面使用(包含非局域网使用以及win11升级为专业版)
Successfully resolved AttributeError: 'PngImageFile' object has no attribute 'imshow'
判断Object是否依赖于名叫“XX“的资产
VLAN 实验
JNPF3.4.2 system upgrade announcement
22/07/21
FL Studio官方20.9中文版无需汉化补丁,正确安装并设置切换