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/
Добавить комментарий