• nodejs笔记--模块篇(三)


    文件模块访问方式通过require('/文件名.后缀')    require('./文件名.后缀')    requrie('../文件名.后缀') 去访问,文件后缀可以省略;以"/"开头是以绝对路径去加载,以"./"开头和以"../"开头表示以相对路径加载,而以"./"开头表示同级目录下文件,

    文件后缀可以省略,Nodejs尝试加载的优先级 js文件 > json文件 > node文件

    exports和module.exports;提供了外部访问的接口

    通过文件名缓存是指实际文件名,并不会因为传入的路径形式不一样而认会是不同的文件

    1.最好别分别定义module.exports和exports

    2.NodeJs开发者建议导出对象用module.exports,导出多个方法和变量用exports

    module.exports和exports区别:

    API提供了解释

    http://nodejs.org/api/modules.html 

    Note that exports is a reference to module.exports making it suitable for augmentation only. If you are exporting a single item such as a constructor you will want to use module.exports directly instead
    exports仅仅是module.exports的一个地址引用。nodejs只会导出module.exports的指向,如果exports指向变了,那就仅仅是exports不在指向module.exports,于是不会再被导出

    参考其它理解:

    http://www.hacksparrow.com/node-js-exports-vs-module-exports.html

    http://zihua.li/2012/03/use-module-exports-or-exports-in-node/

    module.exports才是真正的接口,exports只不过是它的一个辅助工具。 最终返回给调用的是module.exports而不是exports。 
    所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是module.exports本身不具备任何属性和方法。

    其它模块

      module.id
      返回string类型的模块标识,一般为完全解析后的文件名
    
    
      module.filename
      返回一个string类型的完全解析后文件名
    
    
      module.loaded
      返回一个bool类型,表示是否加载完成
    
    
      module.parent
      返回引用该模块的模块
    
    
      module.children
      返回该模块引用的所有模块对象的数组
  • 相关阅读:
    Day2----Python常用模块
    Day1--Python基础知识
    AES加密
    MOS管基本MOS管基本认识(快速入门)认识(快速入门)
    printf定义宏方便调试
    ESP8266上电透传与手动透传AT指令设置笔记
    三态门与高阻态
    步进电机原理
    关于stm32 MCU申请动态内存malloc的认识
    高低位数据分离的两种方法
  • 原文地址:https://www.cnblogs.com/liubei/p/nodejs_3.html
Copyright © 2020-2023  润新知