gpt4 book ai didi

javascript - 如何从不同的文件访问所需的模块?

转载 作者:行者123 更新时间:2023-12-03 05:09:35 25 4
gpt4 key购买 nike

在 Node.js 中,我在 main.js 中使用 Socker.io,如下所示

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

我还使用像 api.js 这样的“子”文件,我想用它来将我的一些业务逻辑从主文件中移出。所以我也导入了这个,比如

const api = require('./api.js');

在我的 api.js 中,我现在如何使用 socket.io 框架?我可以从不同的文件访问上面的实例吗?或者我是否必须像这样传递“io”对象:api.myFoo(io);

最佳答案

您所说的每个地方 require('module') 您都会获得该模块的相同实例。

但是当你想共享函数的返回值时,你必须显式导出它:

const io = require('socket.io')(http);
module.exports = io;

在某些模块中,并通过以下方式在另一个模块中需要它:

const io = require('./your-module');

其他选项是将其作为参数传递给其他模块,如下所示:

const io = require('socket.io')(http);
const api = require('./api.js')(io);

但在这种情况下,您的 api.js 必须导出一个以 io 作为参数的函数:

module.exports = (io) => {
return ... // return whatever was exported before
};

关于javascript - 如何从不同的文件访问所需的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41877519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com