如何在node.js中使用`require`来传递variables?

在我的app.js中,我有3行以下。

var database = require('./database.js'); var client = database.client var user = require('./user.js'); 

user.js文件看起来就像普通的辅助方法一样。 但是,它需要与数据库交互。

user.js的

 exports.find = function(id){ //client.query..... } 

显然,我想在user.js文件中使用client 。 有无论如何,我可以通过这个clientuser.js文件,而我使用require方法?

我想你想要做的是:

 var user = require('./user')(client) 

这使您可以将客户端作为模块中每个函数的参数,或者作为模块范围variables如下所示:

 module.exports = function(client){ ... } 

这个问题类似于: 通过节点中的Module.exportsinheritance

具体回答你的问题:

 module.client = require('./database.js').client; var user = require('./user.js'); 

在user.js中:

 exports.find = function(id){ // you can do: // module.parent.client.query..... } 

你应该把相同的代码放在user.js中

app.js

 var client = require('./database.js').client; // if you need client here at all var user = require('./user.js'); 

user.js的

 var client= require('./database.js').client; exports.find = function(id){ //client.query..... } 

我没有看到这样做的任何缺点…