zoukankan      html  css  js  c++  java
  • 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
      返回该模块引用的所有模块对象的数组
  • 相关阅读:
    C# 窗体WinForm中动态显示radioButton实例
    C#和Java交互相关研究
    c# 注册表操作,创建,删除,修改,判断节点是否存在
    C#单例模式的三种写法
    C#中使用TCP通信
    c#中this的用法
    C#单例模式的三种写法
    二十道经典C#面试题
    Linux chattr 命令详解
    Linux ulimit命令详解
  • 原文地址:https://www.cnblogs.com/liubei/p/nodejs_3.html
Copyright © 2011-2022 走看看