node教程(二)

文章目录

  • 1.模块化
    • 1.1模块化介绍
    • 1.2模块化初体验
    • 1.3模块暴露数据()
    • 1.4引入(导入)模块
    • 1.5导入模块的基本流程
    • 1.6CommonJS规范
  • 2.包管理工具
    • 2.1概念
    • 2.2npm

1.模块化

1.1模块化介绍

⭐什么是模块化与模块?
将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。
其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用。
⭐什么是模块化项目?
编码时是按照模块一个一个编码的,整个项目就是一个模块化的项目。
⭐模块化好处
下面是模块化的一些好处:
1.防止名命冲突
2.高复用性
3.高维护性

1.2模块化初体验

新建me.js

function timeo(){
    console.log('ing...');
}

// 暴露数据
module.exports = timeo;

在index.js中使用me.js中的函数:

// 导入模块
const timeo = require('./me.js');

// 调用函数
timeo();

1.3模块暴露数据()

模块暴露数据的方式有两种:
1.module.exports = value;
2.exports.name = value;

❗❗❗
module.exports可以暴露任意数据
不能使用exports=value的形式暴露数据,模块内部module与exports的隐式关系exports= module.exports={}

function timeo(){
    console.log('ing...');
}
function nie(){
    console.log('hello...')
}
// 暴露数据
// module.exports = timeo;
// module.exports = {
//     timeo,
//     nie
// }

// exports暴露数据
exports.timeo = timeo;
exports.nie = nie;


// module.exports可以暴露任意数据
module.exports = 'i love you';
module.exports = 521;

// 2.不能使用`exports = value`的形式暴露数据
// exports = 'iloveyou'//❌

1.4引入(导入)模块

在模块中使用require传入文件路径即可引入文件

const test = require('./me.js')

require使用的一些注意事项:

  • 1.对于自己创建的模块,导入时路径建议写相对路径,且不能省略./和…/
  • 2.js和json文件导入时可以不用写后缀,c/c++编写的node拓展名也可以不写后缀,但是一般用不到。
  • 3.如果导入其他类型的文件,会以js文件进行处理。
  • 4.如果导入的路径是个文件夹,则会首先检测该文件夹下package.json文件中main属性对应的文件,如果main属性不存在,或者package.json不存在,则会检测文件夹下的index.js和index.json,如果还是没找到,就会报错。
  • 5.导入node.js内置模块时,直接require模块的名字即可,无需./和…/

1.5导入模块的基本流程

介绍require导入自定义模块的基本流程
1.将相对路径转为绝对路径,定位目标文件。
2.缓存检测
3.读取目标代码文件
4.包裹为一个函数并执行(自执行函数),通过arguments.callee.toString()查看自执行函数。
5.缓存模块的值
6.返回module.exports的值

1.6CommonJS规范

nodule.exports、exports以及require这些都是CommonJS模块化规范中的内容。
而Node.js是实现了CommonJS模块化规范,二者关系有点像JS和ECMAScript.

2.包管理工具

2.1概念

包是什么?
package,代表一组特定功能的源码集合。
包管理工具
管理包的应用软件,可以对包进行下载安装,更新,删除,上传等操作。
常用的包管理工具
npm,yarn,cnpm

2.2npm

npm是node的官方内置的包管理工具。
npm初始化包

npm init

最后会生成package.json文件

{ 
  "name": "test",  
  "version": "1.0.0",
  "description": "learn npm",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

注意:
1.package name(包名)不能使用中文、大写、默认值是文件夹的名称,所以文件夹名称也不能使用中文和大写
2.version(版本号)要求x.x.x的形式定义,x必须是数字,默认值是1.0.0
3.package.json可以手动创建与修改
4.使用npm init -y或者npm init --yes积极创建package.json

npm搜索包
搜索包的两种方式:
1.命令行[npm s/search 关键词]
2.网站搜索https://www.npmjs.com/

下载安装包
我们可以通过npm install和npm i 命令安装包
npm i uniq

// 1.导入uniq 包
const uniq = require('uniq');

// 2.使用函数
let arr = [1,2,3,4,5,4,3,2,1];
const result = uniq(arr);
console.log(result);

require导入npm包的基本流程
1.在当前文件夹下node_modules中寻找同名的文件夹
2.在上级目录中下的node_modules寻找同名的文件夹,直至找到磁盘根目录。

你可能感兴趣的:(#,Node,javascript,前端,学习,1024程序员节)