Кроме хорошего способа требовать все файлы в каталоге (для node.js требуются все файлы в папке?), Для чего в index.js
используется index.js
?
Для чего используется index.js в проектах node.js?
Ответ 1
Когда вы передаете папку в Node require(), она проверит наличие package.json для конечной точки. Если это не определено, он проверяет index.js и, наконец, index.node(формат расширения С++). Поэтому index.js, скорее всего, является точкой входа для запроса модуля.
Смотрите официальные документы здесь: http://nodejs.org/api/modules.html#modules_folders_as_modules.
Также вы спрашиваете, как требовать все файлы в каталоге. Обычно вам нужен каталог с index.js, который предоставляет некоторые инкапсулированные интерфейсы для этих файлов; способ сделать это будет другим для всех модулей. Но предположим, что вы хотите включить содержимое папки, когда вы включаете папку (обратите внимание, что это не лучшая практика и появляется реже, чем вы думаете). Затем вы можете использовать index.js, который загружает все файлы в каталоге синхронно (установка экспорта асинхронно обычно запрашивает ужасные ошибки) и присоединяет их к модулю. Экспорт выглядит следующим образом:
var path = require('path'),
dir = require('fs').readdirSync(__dirname + path.sep);
dir.forEach(function(filename){
if(path.extname(filename) === '.js' && filename !== 'index.js'){
var exportAsName = path.basename(filename);
module.exports[exportAsName] = require( path.join( __dirname, filename) );
}
});
Я почти никогда не вижу людей, желающих использовать этот шаблон, хотя большую часть времени вы хотите, чтобы ваш index.js пошел что-то вроде
var part1 = require('./something-in-the-directory'),
part2 = require('./something-else');
....
module.exports = myCoolInterfaceThatUsesPart1AndPart2UnderTheHood;
Ответ 2
Обычно в других языках веб-сервер ищет определенные файлы для загрузки сначала при посещении каталога, например/в приоритете, традиционно это либо: индекс, либо по умолчанию. В php это будет index.php или просто обычный HTML, это будет index.html
В Node.js, Node сам является веб-сервером, поэтому вам не нужно называть ничего index.js, но людям проще понять, какой файл следует запускать first.
index.js обычно обрабатывает запуск вашего приложения, маршрутизацию и другие функции вашего приложения и требует, чтобы другие модули добавляли функциональность. Если вы используете веб-сайт или веб-приложение, оно также будет обращаться к базовому HTTP-серверу, заменяющему роль чего-то более традиционного, такого как Apache.
Ответ 3
Вот хорошая статья, объясняющая, как Node.js ищет нужный модуль https://medium.freecodecamp.org/requiring-modules-in-node-js-everything-you-need-to-know-e7fbd119be8 с папкой и index.js
файл index.js
Модули не должны быть файлами. Мы также можем создать папку find-me в node_modules и поместить туда файл index.js. Та же строка require ('find-me') будет использовать этот файл index.js для папок:
~/learn-node $ mkdir -p node_modules/find-me
~/learn-node $ echo "console.log('Found again.');" > node_modules/find-me/index.js
~/learn-node $ node
> require('find-me');
Found again.
{}
>