模块系统
在Node.js中,一个js文件就称之为一个模块(Module)。
文件名就是模块名。
1.模块概述
模块系统:将一个大型程序拆分为一个一个的小模块,通过模块的拼装来完成整个项目。
在ES6之前,JavaScript并没有模块系统。社区提供了很多的解决方案:CommonJS、AMD等方法。
Nodejs中的模块系统,使用的就是CommonJS的方案。(require、exports/module.exports)
ES6中,JavaScript新增了模块系统(import、export)
导出:规定了模块中哪些内容可以被别人导入(使用)
导入:指定导入哪些模块的哪些内容
2.模块的分类
在Node中,模块分为两类:一类是Node提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块。
2.1内置模块/核心模块
导入内置模块使用require("模块名")
代码示例:
//导入内置模块/核心模块
let path=require("path");//导入系统内置的path模块
console.log(path);
let fs=require('fs');
console.log(fs);
//网络请求
let http=require('http');
console.log(http);
2.2 文件模块
文件模块常见的有:自定义模块、第三方模块
2.2.1 自定模块
导入:require();
导出:exports module.exports
使用exports导出:
//导出一个内容
exports.a=10;
exports.b=20;
exports.fn=function(){
console.log('1234243');
}
class Man{
constructor(){}
say(){
console.log('说话....');
}
}
emplyee模块:
// exports.xy = 'hello';
// exports.name = '李四';
// exports.age = 20;
// exports.fn = function () {
// console.log(11);
// }
// exports.Man = class {
// constructor() { }
// say() {
// console.log(111);
// }
// }
let xy = 'hello';
let name = '李四';
let age = 20;
let fn = function () {
console.log(11);
}
class Man {
constructor() { }
say() {
console.log(111);
}
}
//批量导出
exports.myData = {
xy, name, age, fn, Man
}
创建app.js,在里边导入person.js模块:
let xx=require('./person');//{ a: 10, b: 20, fn: [Function (anonymous)] }
let { a } = require('./user');//导入的同时,解构
let em=require('./emplyee');
console.log(xx);
console.log(xx.a);
console.log(xx.b);
xx.fn();
2.2.2 第三方模块
在开发中,经常会使用其它开发者开发的代码模块(第三方模块);
下载第三方模块到工程中
步骤如下:
1.创建一个工程
2.在终端中运行 npm init 项目初始化
3.下载指定的第三方模块 npm install 包名
4.使用 导入第三方模块
require("模块名称");
示例:
//导入第三方模块
let $=require("jquery");
console.log($);