当前位置: 首页 > 面试题库 >

Node.js module.exports的用途是什么,如何使用它?

孔砚
2023-03-14
问题内容

Node.js module.exports的用途是什么,如何使用它?

我似乎找不到任何相关信息,但是正如我在源代码中经常看到的那样,它似乎是Node.js的重要组成部分。

根据Node.js文档:

模组

对当前的引用 module。特别module.exports 是与导出对象相同。请参阅 src/node.js以获取更多信息。

但这并没有真正的帮助。

究竟是module.exports做什么的,一个简单的例子是什么?


问题答案:

module.exportsrequire调用结果实际返回的对象。

exports变量最初设置为同一个对象(即它是一个速记“别名”),所以在模块的代码,您通常会写是这样的:

let myFunc1 = function() { ... };
let myFunc2 = function() { ... };
exports.myFunc1 = myFunc1;
exports.myFunc2 = myFunc2;

导出(或“暴露”)内部作用域函数myFunc1myFunc2

在调用代码中,您将使用:

const m = require('./mymodule');
m.myFunc1();

最后一行显示的结果require(通常)只是一个可以访问其属性的普通对象。

注意:如果您覆盖exports,则将不再引用module.exports。因此,如果您希望将新对象(或函数引用)exports分配给该对象,则还应将该新对象分配给module.exports

值得注意的是,添加到exports对象的名称不必与要添加的值的模块内部作用域名称相同,因此您可以:

let myVeryLongInternalName = function() { ... };
exports.shortName = myVeryLongInternalName;
// add other objects, functions, as required

其次是:

const m = require('./mymodule');
m.shortName(); // invokes module.myVeryLongInternalName


 类似资料:
  • 本文向大家介绍什么是REST/RESTful ?它的用途是什么?相关面试题,主要包含被问及什么是REST/RESTful ?它的用途是什么?时的应答技巧和注意事项,需要的朋友参考一下 Representational State Transfer(REST)/ RESTful (表述性状态转移)是一种帮助计算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实现。 微服务可

  • 问题内容: 我不了解Java的这一功能。我知道它使编码更容易,有时看起来更整洁,但这的实际用途是什么?相反,我觉得最好显示警告,因为将来任何人在修改代码之前都可以引用它们。这@SuppressWarnings是否提高了编译效率,还是根据任何编码标准? 问题答案: 其他答案已经解释了很多用例,但是我想强调一点, 有时您绝对需要使用它来克服语言本身的局限性,在这些情况下,使用绝对是合法的。 在其他情况

  • 问题内容: java中有什么用? 请解释一下。 问题答案: 可能这个例子会帮助您。

  • 本文向大家介绍sinon.js的用途是什么?,包括了sinon.js的用途是什么?的使用技巧和注意事项,需要的朋友参考一下 SinonJS提供独立的测试间谍,存根和模拟。这是一个我们可以用来创建用于单元测试的对象模拟的库。 间谍-可以用来追踪执行情况的伪造函数。 存根-函数替换,我们可以从中返回所需的内容或使我们的函数以适合我们测试多个场景的方式工作。 嘲笑-假方法 所有这些对象都有助于对我们的代

  • 我试图理解何时应该使用stdio函数。 例如,如果我对有效的执行或,并得到一个短计数,并且为真,我该怎么办? 从我到目前为止所读到的,和是健壮的,并且会阻止和/或重试(如果有锁和/或中断可能发生在较低级别的函数中),所以使用<代码>clearerr()因为或错误将是如此灾难性,以至于没有必要尝试恢复。 另外,只告诉我有错误,而不是错误是什么。

  • 这个豆子“状态”: 使用ajax“成功”回调通过网络发送: 这里需要注释@JsonProperty吗?使用它有什么好处?我想我可以删除这个注释而不会产生任何副作用。 正在阅读关于https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations我不知道什么时候需要用这个?