NPM - путь к корню приложения - PullRequest
1 голос
/ 14 ноября 2011

Я разрабатываю пакет NPM, для которого требуется модуль из корня приложения.Думайте об этом как о пакете, требующем модуля свойств, который пользователь помещает в корень приложения.

Как мне получить путь к корню приложения?

ОБНОВЛЕНИЕ:

Подводя итог, я пытаюсь сделать, экспресс позволяет вамсделать что-то вроде этого:

app.use(express.router(myNPMModule.router));

Функция маршрутизатора получит app в качестве параметра.Идея состоит в том, чтобы позволить пользователям указывать маршруты в отдельном файле, и им просто нужно следовать определенным соглашениям, таким как помещение своих контроллеров в папку /controllers, и мой модуль сможет динамически анализировать путь, а затем вызыватьправильный метод в правильном модуле.Я уже запустил его, но только что понял, что если я упакую его в NPM, у меня больше не будет доступа к пути приложения, поэтому я не могу динамически вызывать метод модуля контроллера.

Ответы [ 3 ]

3 голосов
/ 14 ноября 2011

Заставьте пользователя вызывать функцию, которая устанавливает переменные:

  myModule.setProps(json)
  OR
  myModule = new MyModule(json)

Затем пользователь может запросить свой корневой конфиг и запустить с ним ваш модуль.

Обновить В ответ на отредактированный вопрос:

Express позволяет вам определять маршруты следующим образом:

var routes = require('./routes')
app.get('/info', routes.info);

//Routes Module
exports.info = function(req, res) {
  res.render('info', {title: 'Express'})
};

Я считаю, что это именно то, что вы пытаетесь сделать.Разве это не так?

Обновление 2:

Вы можете найти каталог, в котором в данный момент выполняется скрипт, используя __dirname

console.log(__dirname);
1 голос
/ 10 июля 2013

Попробуйте это.

var path = require('path');
console.log(path.dirname(module.parent.filename));
1 голос
/ 21 октября 2012

У меня такой же вопрос.

И я могу найти только эту переменную окружения help:

process.env.PWD

Она всегда будет указывать на корень пути вашего приложения, где он выполняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...