Require целой папки

от автора

imageЗдравствуй, %username%! Разрабатывая проект на Node.js я столкнулся с невозможностью сделать require целой папки.
Допустим, у нас есть такое дерево каталогов:

Project
— handlers
— — admin.js
— — user.js
— — settings.js
— routes
— — admin.js
— — user.js
— — settings.js
— app.js

Как правило, если нам необходимо добавить новый handler, то мы создаем там файл, затем прописываем адрес к нему в require и радуемся. Но иногда хочется иметь сразу все файлы в одном объекте (чтобы наш алгоритм сводился только лишь к созданию файла).

Для этого мы должны в каждой нужной папке создать файл index.js и поместить в него следующий код:

var curFile, curPath, dir, fs, path, result, value, _i, _len;  result = {}; fs = require('fs'); path = require('path'); curPath = path.dirname(__filename); curFile = path.basename(__filename); dir = fs.readdirSync(curPath);  for (_i = 0, _len = dir.length; _i < _len; _i++) {   value = dir[_i];   if (value !== curFile) {     result[value.split('.')[0]] = require(curPath + '/' + value);   } }  module.exports = result; 

И затем мы можем указать просто require('./routes') или require('./handlers') и получить объект, свойствами которого будут названия файлов в этой директории. Каждое свойство будет содержать require одноименного файла.

ссылка на оригинал статьи http://habrahabr.ru/post/201186/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *