Можно ли совместно использовать переменную / объект в нескольких файлах, не экспортируя указанную переменную / не импортируя модуль? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть запущенный и подключенный экземпляр базы данных, сохраненный в переменной с именем db.Я хочу получить доступ к свойствам и методам указанного объекта в нескольких файлах.

При использовании классического решения, основанного на шаблонах модулей, для экспорта объекта db и необходимости модуля, я получаю сообщения об ошибках, поскольку мой экземпляр основного сервера также создается в том же файле.Из-за логистики объект db должен находиться в том же файле, в котором настраивается экземпляр сервера.

например,

server.js

const jsonServer = require("json-server");
const path = require("path");
const source = path.join(__dirname, "db.json");

const router = jsonServer.router(source, {
  foreignKeySuffix: "_id"
});

const db = router.db;
server.use(router);

server.listen(3001, "0.0.0.0", () => {
  console.log("JSON Server is running");
});

exports.db = db;

module.exports = server;


fileThatNeedsDbInstance.js


const db = require("./server.js").db;

db.doSomething();

Это приводит к возникновению ошибок, так как при импорте файла из модуля также выполняется код внутри, что приводит к тому, что узел пытается настроить новый экземпляр сервера, используя тот же, теперь занятыйпорт.

Есть ли какой-нибудь чистый способ сделать это?

...