美文网首页我爱编程
Node.js Module Learn

Node.js Module Learn

作者: Cedric_Jc | 来源:发表于2018-03-06 17:20 被阅读26次

    Module 的源码分析
    http://blog.csdn.net/leoleocs/article/details/50245677

    Node.js 官方文档中 Module 的介绍
    http://nodejs.cn/api/modules.html

    module.exports 和 exports 的关系说明,评论处有模拟实现 module.exports 的代码
    http://cnodejs.org/topic/52308842101e574521c16e06

    主要解答了自己的几个问题。

    1. Module 和文件的关系?
      node.js 有一个 NativeModule。在加载一个js文件的时候,会以文件名生成一个新的Module,存储在NativeModule的数组中。所以一个Module对应一个文件,加载多少js文件,就会有多少module。

    2. exports 和 module.exports 的关系
      因为 require() 实际上是将模块的代码用一个“函数”包装好,返回module.exports,“函数”的参数有 module 和 module.exports 。所以我们才可以在自定义的模块中使用 exports 、 module 、module.exports。
      重点在于《JS传参是副本传递,而不是引用传递。这点大部分编程语言都是这样的阿》。所以exports相当于是module.exports 的副本,而不是引用。
      所以可以通过设置 module.exports 为方法或者常量,来使得 require()导出的内容是需要的东西。

    3. 如何直接运行 js 文件
      终端输入
      node a.js

    补充。ES6出来的模块化解决方案 import export
    export 可以通过 export default xxx 指定模块的默认输出。
    但是 node.js 不一定支持,还得用一些第三方包来将 ES6语法转为 ES5语法。
    实际上 和 上面 module.exports require 效果是一样的叻。

    export 指定变量标识符后, import 可以导出同名的变量标识符使用。

    相关文章

      网友评论

        本文标题:Node.js Module Learn

        本文链接:https://www.haomeiwen.com/subject/qukrfftx.html