Подтвердить что ты не робот

Для чего используется index.js в проектах node.js?

Кроме хорошего способа требовать все файлы в каталоге (для node.js требуются все файлы в папке?), Для чего в index.js используется index.js?

4b9b3361

Ответ 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.
{}
>