zoukankan      html  css  js  c++  java
  • node 模块机制

    CommonJS规范为Javascript制定了一个美好的愿景--希望Javascript能够在任何地方运行。

    1、CommonJS的模块规范

    1 模块引用

    var math= reuqire('math');
    

    2、模块定义

     node提供了exports对象用于导出当前的模块的方法或者变量。并且是唯一的导出出口。在模块中,还存在一个module对象,它代表模块本身,而exports是module的属性

    module.exports={}
    

    3、模块标识

    模块标识是传给require()方法的参数,必须符合小驼峰命名的字符串或者.、..开头的相对路径

    2、Ndoe的模块实现

    在Node中引入模块,需要经历三个步骤

    (1)路径分析

    (2)文件定位

    (3)编译执行

    核心模块部分在Node源码的编译过程中,编译进了二进制的执行文件。在Node进行启动时,部分核心模块就被直接加载进内存了,文件定位和编译执行会被省去,并且在路径分析中优先判断,加载速度最快。

    Node也会对引入的模块进行缓存,缓存的不是文件,而是编译和执行之后的对象。

    自定义文件加载慢的原因是因为 模块路径的生成规则有关

    查找规则有点像js的原型和作用域链,逐级向上递归,直到根目录下的xxx.js目录。

    小诀窍,未鉴定过(如果.node和.json的文件在传递给require()的标识符中带上扩展名,会加快一点速度)

  • 相关阅读:
    【C语言疯狂讲义】(三)C语言运算符
    RAII手法封装相互排斥锁
    《Java并发编程实战》第十一章 性能与可伸缩性 读书笔记
    Nginx之红黑树
    我第一家互联网公司产品开发周期
    javascript中的XML
    哈夫曼树
    【HttpClient4.5中文教程】【第一章 :基础】1.1运行请求(二)
    H3C开启Ssh
    H3C创建本地用户
  • 原文地址:https://www.cnblogs.com/yudabing/p/7246488.html
Copyright © 2011-2022 走看看