Node.js模块系统 (建立模块与加载模块)

Node.js模块系统node

为了让Node.js的文件相互调用,Node.js提供了一个简单的模块系统缓存

Node.js应用程序的组成就是由模块组成基本部分,文件和模块是一一对应的。ui

一个Node.js文件就是一个模块,这个文件能够是js代码,JSON 或者编译过的C/C++扩展。this

接下来写一个实例。spa

建立模块与引入模块很简单,首先咱们写一个hello.js文件 代码以下code

// 模块的主要逻辑
function Hello() {
    let name
    this.setName = function(argName) {
        name = argName
    }
    this.sayHello = function() {
        console.log('Hello' + name)
    }
} 
module.exports = Hello //导出模块

exports 和 module.exports 的使用
若是要对外暴露属性或方法,就用 exports 就行,要暴露对象(相似class,包含了不少属性和方法),就用 module.exports。对象

而后写一个倒入模块的文件 main.jsip

const Hello = require('./hello') // 这里使用require导入刚刚写好的hello.js 

let hello = new Hello()
hello.setName('思否')
hello.sayHello()

服务端的模块的加载流程it

node.js中有原生模块和三种文件模块 ,在使用中只须要require,用起来很简单,可是内部的加载很复杂,其加载优先级也各有不一样,入下图所示io

clipboard.png

按图中所示,无论是哪一种模块,加载机制都会优先检查文件是否在模块缓存区中,缓存区的意义在于防止某一个模块被反复加载。缓存区域分为两种,一种是文件模块缓存区,也就是咱们说的三种文件类型,还有一种就是原生模块缓存区,例如http fs等原生模块。

相关文章
相关标签/搜索