为什么这在NodeJS中充当单身人士

时间:2017-05-10 13:19:53

标签: javascript node.js require

为什么它在NodeJS中充当单身,它是如何工作的?

const io = require('socket.io')();

const singleton = module.exports = io;

实质上,如果我多次导入此文件,我会得到第一个实例化的socket.io实例。

1 个答案:

答案 0 :(得分:3)

模块由节点缓存。您正在返回一个实例,因此每当您require此文件时,您每次都会获得相同的实例(io)。这条线

const io = require('socket.io')();

仅在第一次运行此模块时运行。之后,任何需要此模块的模块都只会获得返回的实例。

以下是有关缓存的官方文档:falsey