gpt4 book ai didi

javascript - 为什么当您尝试在其他文件的 .js 中调用函数 'connect()' 时,npm 模块 mysql 不起作用

转载 作者:行者123 更新时间:2023-11-29 19:02:23 25 4
gpt4 key购买 nike

我调用 require('mysql') ,如果调用函数 connect() 一切正常,但如果调用其他文件中的函数 'connect()' 会抛出错误 connection.connect 不是一个函数...如何在不插入另一个文件模块的情况下解决这个问题?

最佳答案

在 Node 中,您不能require一个文件中的模块,然后让它在另一个文件中全局可用。这是因为 Node 实现了 Module Wrapper .

如果您想在多个文件中使用一个模块,那么一种方法(可能是最常见的方法)是在依赖于该模块的每个文件中 require() 该模块。 Node 通过将所有模块设置为单例来解决此问题,因此任何一个 node 进程都只存在该加载模块的单个实例,这称为 Module Caching .

或者,您可以使用Dependency Injection,而不是在每个需要给定包的模块中使用require()传递模块的实例。

两种方法没有对错之分,关键在于适合场景。

关于javascript - 为什么当您尝试在其他文件的 .js 中调用函数 'connect()' 时,npm 模块 mysql 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43764675/

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