如何将模块导出与现有库一起使用?

时间:2016-12-29 00:05:46

标签: node.js module

例如,我posts.js有一个将后期数据添加到SQLite数据库的函数,所以我需要在该文件中要求sqlite库。

但如果我有另一个名为comments.js的文件,其中包含添加评论数据的函数,我需要再次要求该文件中的sqlite库。

这就是我现在正在做的事情,也是我能弄清楚如何让它发挥作用的唯一方法。有一个更好的方法吗?例如,需要主文件中的sqlite库,并且能够在posts.jscomments.js中使用它?

3 个答案:

答案 0 :(得分:0)

你这样做的方式没有错。这是人们使用require的方式。

如果您在主文件中需要sqlite,则无法使用它,因为其他文件丢失undefined时出现sqlite错误。

答案 1 :(得分:0)

您可以在sqlite中设置main.js连接,如下所示:

global.db = require('sqlite');

然后它将在所有其他文件中提供

答案 2 :(得分:0)

自从执行模块代码之前没有办法,Node.js将使用函数包装器将其包装起来,以保持顶级变量作用于模块而不是全局对象。

但是,您可以在全局变量中设置它:global.sqlite = require('sqlite');但是您不应该这样做以避免输入'要求'。

你应该尝试使用一些设计模式,如依赖注入。