node-03-包-模块

简介: 模块和包是node的核心思想之一

模块和包是node核心思想之一


1.模块

可以理解成 一个文件,类型可以是js json等

优点:代码进行了抽离,方便复用

1.2commonJS规范:

require和exports功能

require 的作用是引入外部的模块

exports 是一个文件被另一个文件引入的入口对象,而且是唯一的入口对象


2.person.js模块


let name = "岳飞";
let age = 20;
let sex = "男"
function sayHi() {
    console.log("你好")
}
//常规写法
let obj = {
    name: name,
    age: age,
    sex: sex,
    sayHi:sayHi
}
// es6 写法
let obj2 = {
    name,
    age,
    sex,
    sayHi
}
// 每个文件里 node都会内置一个exports对象!!!
// 添加一些属性和方法 逐个导出
// exports.name = name;
// exports.age = age;
// exports.sex = sex;
// exports.sayHi = sayHi;
// 完整替换
module.exports = obj;
// 报错
// exports  = obj;

module.exports 和exports区别

1.exports 是对module.exports的引用   exports = module.exports = {};

  1. 外界在require的时候 ,实际上是引入的module.exports而不是exports


3.使用person.js

新建一个比如index.js 文件用来使用person.js模块内容

require只会返回 模块内exports 导出的对象,其他的不会返回


//注意这里路径的书写
const p = require('./person');
console.log(p.name, p.age, p.sex)
p.sayHi()
模块访问顺序

1.首先,查找该文件所在的同级目录下有没有一个文件夹叫node_modules,如果有,查找该目录下是否有与该模块名相同的js文件,如果有,则引入;

2.反之没有,则查找node_modules文件夹下是否有与该模块同名的文件夹,如果有,则引入该文件夹下的index.js;

3.如果不想引入该文件夹下的index.js,则在该文件夹目录下,创建一个package.json,修改入口文件为想要访问的js文件;


4.包

可以理解成一个文件夹(目录),包是由多个模块组成的,其中npm是包管理工具:管理的就是包

node对包的管理,遵循的是comonJS 规范

comonJS规定,在创建或者下载包时,保证每个包里必须有一个package.json文件

该文件里存储了与包有关的所有配置信息(比如:包的入口文件)


5.package.json文件的创建

1. 进入指定目录

首先进入到要创建package.json的目录

控制台或者cmd 等着终端执行指令

例如:  cd 文件夹路径

2. 交互式 package.json文件

npm init 回车

看控制台 解释

entry point入口文件 默认第一个

3.  快速创建npm init -y


6.一些常用的指令

  1. 安装 npm i 包名@版本号
  2. 卸载 npm uni 包名
  3. 重载所有库 npm i


7.包的使用

创建文件夹Computer

这个目录下创建package.json文件

Computer/index.js


exports.name = "index"
Computer/index1.js


exports.name = "index1-1-1-1"
修改Computer/pcakage.json

默认是ndex.js运行p.js查看结果

改为index1.js运行p.js查看结果


"main": "index1.js",
使用

和Computer 同级目录 p.js


// 引入自定义包
const c = require("./Computer");
console.log(c.name)
运行 p.js查看 输出了哪个




相关文章
|
1月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
209 1
|
1月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
34 0
|
14天前
|
缓存 JSON JavaScript
Node.js模块系统
Node.js模块系统
14 1
|
9天前
|
JavaScript 应用服务中间件 Apache
Node.js Web 模块
Node.js Web 模块
12 2
|
26天前
|
JavaScript 前端开发
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序
基于 Node.js 环境,使用内置 http 模块,创建 Web 服务程序
|
26天前
|
JavaScript 前端开发
node.js中path模块-路径处理,语法讲解
node.js中path模块-路径处理,语法讲解
|
26天前
|
JavaScript 前端开发
node.js中的fs模块,读写语法讲解
node.js中的fs模块,读写语法讲解
|
9天前
|
JSON JavaScript 中间件
【Node.js】从基础到精通(三)—— HTTP 模块探索
【Node.js】从基础到精通(三)—— HTTP 模块探索
13 0
|
9天前
|
JavaScript Linux 开发者
【Node.js】从基础到精通(二)—— Path 模块全解析
【Node.js】从基础到精通(二)—— Path 模块全解析
13 0
|
9天前
|
JavaScript 安全 前端开发
【Node.js】从入门到精通(一)—— fs 模块全解析
【Node.js】从入门到精通(一)—— fs 模块全解析
14 0