为什么这在 NodeJS 中充当单例
Why does this act as a singleton in NodeJS
为什么这在NodeJS中充当单例,它是如何工作的?
const io = require('socket.io')();
const singleton = module.exports = io;
本质上,如果我多次导入此文件,我会得到第一个实例化的 socket.io
实例。
模块按节点缓存。您正在返回一个实例,因此每当您 require
这个文件时,您每次都会得到相同的实例 (io
)。行
const io = require('socket.io')();
只是 运行 第一次需要此模块。之后,任何需要这个模块的模块都只会得到返回的实例。
这里是关于缓存的官方文档:https://nodejs.org/api/modules.html#modules_caching
为什么这在NodeJS中充当单例,它是如何工作的?
const io = require('socket.io')();
const singleton = module.exports = io;
本质上,如果我多次导入此文件,我会得到第一个实例化的 socket.io
实例。
模块按节点缓存。您正在返回一个实例,因此每当您 require
这个文件时,您每次都会得到相同的实例 (io
)。行
const io = require('socket.io')();
只是 运行 第一次需要此模块。之后,任何需要这个模块的模块都只会得到返回的实例。
这里是关于缓存的官方文档:https://nodejs.org/api/modules.html#modules_caching