2015-08-22 5 views
0

Я следовал учебник NodeJs, и автор добавляет модули к переменной req в app.use() обратного вызова, как это:Добавление модулей к переменному запросу приложения

app.use(function(req, res, next) { 
    req.date = date; 
    next(); 
}); 

В этом случае date является «модулем "Я создал, а затем требуется:

var date = require('./date.js'); 

Итак, в, например, index.js, я могу получить доступ к функциям в моем date модуле, как это:

var date = req.date; 
var currentDate = date.getDate() //getDate is a function in my 'date' module 

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

Так что мой вопрос; Каков рекомендуемый способ использования модулей в NodeJs в других JS-файлах, кроме app.js?

+1

Просто 'require()' их в файлах, где они вам нужны. – robertklep

+0

Ох ... ничего себе. Не могу поверить, что я пропустил это. Спасибо! – opiop65

ответ

0

Оказывается, я забыл о функции require в 'внешних' JS-файлах. Например, в index.js (взято из моего вопроса):

var date = require('date'); 
var currentDate = date.getDate(); 

Файл date.js помещается в мой node_modules каталог, где NodeJs будет выглядеть для него.

+0

Вам нужно использовать относительный путь ('require ('./ date')'). – robertklep

+0

@robertklep Я пробовал это, все еще бросая ошибку о невозможности найти модуль. Модуль находится в корне проекта, а мой файл 'index.js' находится в моей папке' routes', которая находится прямо у корня, что это повлияет на что-нибудь? – opiop65

+0

Я понял, я просто поместил файл 'date.js' в свой каталог' node_modules'. – opiop65