美文网首页我爱编程
[Node.js]node.js中的module.exports

[Node.js]node.js中的module.exports

作者: 测试你个头 | 来源:发表于2017-02-26 16:16 被阅读0次

背景:在node.js中,我们经常能在js文件中看到module.exports这句话,它是干嘛用的

要介绍module.exports,需要从CommonJS规范讲起,node.js是对CommonJS的一个实现:

Node应用由模块组成,采用CommonJS模块规范。

根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见

CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

核心要点:

* 一个文件是一个module
* module.exports定义了module对外暴露的接口

所以module.exports起到的作用就是向其他模块暴露接口的作用

举例:
1.view.js文件内容如下:

module.exports.views = {
  engine: 'ejs',
  layout: 'layout',
  partials: false
};

2.另外一个模块可以通过require加载views模块:

const views = require("views")
console.log(views.engine)

module.exports除了可以暴露模块的属性,还可以暴露方法:
sample.js

module.exports={
    sayHelloWorld:function(){
      console.log("hello world")
    } 
}

另一个模块引用sample.js中暴露的方法:

const sample = require("sample")
sample.sayHelloWorld();
const sample = require("sample").sayHelloWorld()
sample();

二者产生的效果是相同的

相关文章

  • 六.JavaScript——exports、module.exp

    node.js中的导入导出 定义 exports——导出 module.exports——导出 require——...

  • [Node.js]node.js中的module.exports

    背景:在node.js中,我们经常能在js文件中看到module.exports这句话,它是干嘛用的 要介绍mod...

  • node.js中module.exports

    在写node.js代码时,我们经常需要自己写模块(module)。同时还需要在模块最后写好模块接口,声明这个模块对...

  • 暴露API

    exports和module.exports 是node.js两种对外暴露的方式。 注意 exports返回的是对...

  • node之module(模块)

    在Node.js模块系统中,每个文件都被视为独立的模块module.exports属性可以被赋予一个新的值(例如函...

  • 2017-06-13今日总结

    经历: 今天看了exports和module.exports,然后尝试着写了node.js的题 还有就是看了一会数...

  • Node.js 之学习笔记

    这里有一只小白在学习Node.js,相关大神请撤离 :) module.exports和exports的区别 首先...

  • node.js笔记1

    Node.js、使用vscode搭建js环境、nodejs中的模块、http协议 Node.js Node.js平...

  • 静态服务器模块

    Node.js 中 __dirname 和 ./ 的区别 Node.js 中,__dirname 总是指向被执行 ...

  • module.exports和exports的区别

    在学习Node.js时,经常能看到两种导出模块的方式:module.exports和exports。 穿插一个必备...

网友评论

    本文标题:[Node.js]node.js中的module.exports

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