Метод 3) не рассматривается, так как он объединяет один из других методов с сетевым запросом, поэтому вам все равно придется выбрать один из других методов.
Я предполагаю, что метод 2) вызывает утечку памяти,NodeJS вернет точно то же самое по ссылке, если вам потребуется это дважды:
require("thing") === require("thing")
, поэтому, если вам потребуется что-то один раз, оно останется в памяти навсегда.Это быстро, если вы просматриваете его несколько раз, но если у вас есть много файлов, он заполнит память.
Теперь остался только метод 1), и я бы пошел с асинхронной версией,поскольку он может выполнять несколько запросов параллельно, что превзойдет метод синхронизации, если ваш сервер находится под нагрузкой.
Лично я бы выбрал вариант 4):
Сохраните его вбаза данных.Базы данных загружают данные в память для более быстрого доступа, и они были созданы для обработки большого количества файлов.Поскольку вы имеете дело с JSON, Mongodb будет хорошим выбором:
const db = mongodb.collection("json");
function getFile() {
return db.findOne({ "name": "test" });
}