Я разрабатываю пакет NPM, для которого требуется модуль из корня приложения. Подумайте об этом как о пакете, требующем модуля свойств, который размещен пользователем в корне приложения.NPM - путь к корню приложения
Как я могу получить путь к корню приложения?
UPDATE:
Чтобы подвести итог, что я пытаюсь сделать, экспресс позволяет сделать что-то вроде этого:
app.use(express.router(myNPMModule.router));
Функция маршрутизатор получит app
в качестве параметра. Идея состоит в том, чтобы позволить пользователям указывать маршруты в отдельном файле, и им просто нужно следовать определенным соглашениям, например, поместить свои контроллеры в папку /controllers
, а мой модуль сможет динамически анализировать путь, а затем вызвать правильный метод в правильном модуле. Я уже работал, но понял, что если я упакую его в NPM, у меня больше нет доступа к пути к приложению, поэтому я не могу динамически вызывать метод модуля контроллера.
Вы не должны этого делать, вместо этого попросите пользователя вызвать конструктор (или любую имеющуюся у вас функцию) со свойствами. – alessioalex
Смотрите мой комментарий к другому ответу. Я пишу маршрутизатор, и я ожидаю, что пользователь последует определенным соглашениям. Подобно размещению его контроллеров в «контроллерах/moduleName.js», а затем на основе URL-адреса, я могу вызвать правильный контроллер и метод. – jeffreyveon
Просто попробуйте npm [rainbow] (https://npmjs.org/package/rainbow), который я написал. Это промежуточное ПО маршрутизатора, такое же, как ваше требование для сопоставления URL-адресов для путей к файлам контроллеров. – mytharcher