как ссылаться на клиентскую библиотеку JavaScript с эластичным поиском в файлах контроллера js узла - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю node.js RESTapi в экспресс-фреймворке.Я хочу интегрировать эластичный поиск в свой проект.Поэтому я установил клиентскую библиотеку JavaScript с эластичным поиском и добавил эти коды в app.js.

var client = new elasticsearch.Client({
    host: 'localhost:9200',
    log: 'trace'
});

client.ping({
    requestTimeout: 30000,
}, function (error) {
    if (error) {
        console.error('elasticsearch cluster is down!');
    } else {
        console.log('All is well');
    }
});

, и я получаю ' Все хорошо '.Но как мне обратиться к этому клиенту в моих файлах контроллера.

1 Ответ

0 голосов
/ 05 февраля 2019

Передача аргументов:

Передайте вашу переменную в качестве аргументов вашей функции импорта. Таким образом, вы можете передавать переменную из одного файла в другой файл.

//app.js
var client = new elasticsearch.Client({
    host: 'localhost:9200',
    log: 'trace'
});
var catRouters = require("categorry.controller.js")(client);

// categorry.controller.js
module.exports = function (client) {
    ....
    return { create, read, update, readById, categoriesByCity, live_search };
};

Использование глобальных переменных:

Задайте свою переменную в глобальном объекте Node.js для использования в других файлах, глобальные объекты Node.js имеют глобальный характер и доступны во всех модулях.

//app.js
var client = new elasticsearch.Client({
    host: 'localhost:9200',
    log: 'trace'
});
global.client = client;

// categorry.controller.js
....
consoel.log(global.client);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...