Подтвердить что ты не робот

Как передать переменную при использовании `require` в node.js?

В моем 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.....
}

По-видимому, я хочу использовать client внутри файла user.js. Есть ли в любом случае, что я могу передать этот client в файл user.js, тогда как я использую метод require?

4b9b3361

Ответ 1

Я думаю, что вы хотите сделать:

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

Это позволяет вам иметь клиент в качестве параметра в каждой функции вашего модуля или как переменная области модуля следующим образом:

module.exports = function(client){

 ...

}

Ответ 2

Этот вопрос похож на: Наследование через Module.exports в node

В частности, отвечая на ваш вопрос:

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

В user.js:

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

Ответ 3

Вы должны просто поместить тот же код в 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.....
}

Я не вижу никаких недостатков, делая это так...