require、缓存

什么是require?javascript

  -Node使用CommonJS模块规范,内置require函数用于加载模块文件java

  -require的基本功能是>读入并执行一个javascript文件,而后返回该模块的exports对象node

  -若没有发现指定模块,则报错json

本身实现require函数缓存

  -定义模块函数

  

  -实现测试

  

  注释ui

  

rquire扩展名对象

  --require加载文件时能够省略扩展名blog

require加载文件规则

  -经过 ./ 或者 ../ 开头

    --按照相对路径从当前文件所在文件夹开始寻找模块

  -经过 / 开头

    --以系统根目录开始寻找模块

  -不以 ./ 或 / 开头,分为两种状况

    --表示加载的是一个默认提供的核心模块> 位于Node的系统安装目录中

    --从当前目录向上搜索node_modules目录中的文件

        ---若是本身定义一个模块在node_modules目录中,而加载时不以 ./ 或 / 开头,直接以文件名加载,不管node_modules在什么位置,均可以被加载到,由于当加载时会一直向上去找,一直到找不到为止,此加载符合就近原则

  -模块名称重复,系统模块的优先级别最高

require不只能够载入js模块,也能够载入JSON对象

  -加载json文件,大部分用于读取配置信息

  -require也能够加载文件夹,加载文件夹分为两种状况

    --若文件夹中不存在package.json,直接加载文件夹内的index.js文件

    --若package.json文件存在,则根据配置问价信息加载

 模块的缓存

  -第一次加载某个缓存时,Node会缓存该模块,之后再加载该模块,就直接从缓存取出该模块的module.exports属性(不会再执行该模块)

  -若是须要屡次执行模块中的代码,通常可让模块暴漏行为(函数)

  -模块的缓存能够经过require.cache拿到,一样也能够删除

间的的测试缓存

  -模块

    --module.exports = new Date();

  -文件

    

  执行文件能够看到,获得的毫秒是不变的,说明已经缓存。

清空缓存

  -在加载模块以前进行缓存的清楚

  

  -何时须要清楚缓存?

    --因为能够加载json数据,因此每次数据更新时,须要同步更新json数据,此时就须要清除缓存,通常都是对数据作清除缓存操做

 若是不须要缓存,能够将暴漏的属性改成暴漏方法(行为),由于暴漏的方法在每一次加载的时候都会执行,从而不会进行缓存。

相关文章
相关标签/搜索