• require、缓存


    什么是require?

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

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

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

    自己实现require函数

      -定义模块

      

      -实现

      

      注释

      

    rquire扩展名

      --require加载文件时可以省略扩展名

    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数据,此时就需要清除缓存,一般都是对数据做清除缓存操作

     如果不需要缓存,可以将暴漏的属性改为暴漏方法(行为),因为暴漏的方法在每一次加载的时候都会执行,从而不会进行缓存。

  • 相关阅读:
    高级算法(1):
    spark浅谈(3):
    linux学习笔记(1):
    数据分析之pandas(1)
    数据分析之期权
    数据分析之蒙特卡洛模拟
    未能加载文件或程序集"xxxxxx"或它的某一个依赖项
    未能映射路径"/"
    部署MVC项目ManagedPipelineHandler报错
    IIS记录
  • 原文地址:https://www.cnblogs.com/nordon-wang/p/6051630.html
Copyright © 2020-2023  润新知