目录
一、模块化
1、模块化概念:
(把一系列相似功能的,封装到一个模块中,然后供使用)
node.js的开发是模块化开发的思想 具有一些相同功能的代码 集成为一个模块
模块主要是由: node系统自带的模块 、 第三方模块 、 自定义模块组成
第三方模块几乎都是由npm来管理 ==>npm是一个集成了当前世界上最多开源库的生态系统
nodejs环境中的全局函数:require() (window中的全局函数是global)
在前端中不用require,引用前端的js文件,用import
在后端运行时,引入第三方js文件,就用require() 也可以用import(es6语法)
import 是es6的语法 ==>导出 export defualt xxx
require是node能读懂的语法==>导出 moudel.exports={}
2、模块化语法:
nodejs中有3种模块:
var fs=require("fs") // 内置模块 / 核心模块 node.js安装时,自己就装好了的模块
var mime=require("mime") //第三方模块,下载后使用 npm i mime
var myquerystring=require("./qureystring.js") //自定义模块
自定义模块,需导入导出:
在index.js目录中打开cmd小黑窗,执行 node indedx.js 会打印66666 和 网址
==>与import 的用法很相像
//导入:index.js文件中的内容 var myquerystring=require("./myquerystring.js") myquerystring.tool() console.log(myquerystring.url)
//导出:myquertstring.js文件中的内容 module.exports={ tool(){ console.log(6666666) }, url:"网址" } //如果里面没写内容,打出来就是一个空对象
3、模块化的笔试题/面试题
笔试题:commonJS 中的 require/exports 和 ES6 中 import/export 的区别是什么
commonJS 中的 require/exports:
commonJS 模块的重要特性是 加载时执行,及脚本代码在 require 的时候,就会全部执行。一 旦出现某个模块被“循环加载”就只输出已经执行的部分,还没有执行的部分是不输出的。require可以用在函数、事件里面,跟懒加载相似ES6 中 import/export:ES6 模块是动态引用,如果使用 import 从一个模块加载变量,那些变量不会缓存,而是成 为 一个指向被加载模块的引用,import/export 最终都是编译为 require/exports 来执