O que é Índice.js tipicamente usado para nodo.projectos js
para além de uma boa forma de exigir todos os ficheiros numa pasta (nó.o js precisa de todos os ficheiros numa pasta?, para que é utilizado principalmente index.js
; tem utilidade para as "melhores práticas"?
3 answers
Quando você passa uma pasta para a necessidade do Node (), ele irá verificar para um pacote.json para um endpoint. Se isso não estiver definido, verifica o índice.js, e finalmente index.node (um formato de extensão c++). Então o índice.js é provavelmente o ponto de entrada para exigir um módulo.
Veja os documentos oficiais aqui: http://nodejs.org/api/modules.html#modules_folders_as_modules.
Além disso, você pergunta como exigir todos os arquivos em um diretório. Normalmente, é necessário um directório com um indice.js que expõe alguma interface encapsulada para esses arquivos; a maneira de fazer isso será diferente para sempre módulo. Mas suponha que você queria incluir o conteúdo de uma pasta quando você inclui a pasta (Nota, Esta não é uma melhor prática e vem acima menos frequentemente do que você pensaria). Então, precisa de um índice.js que carrega todos os arquivos no diretório de forma sincronizada (configurar as exportações assíncrona normalmente é pedir erros terríveis) e os prende ao módulo.exportações como então ...
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) );
}
});
Eu quase nunca vejo pessoas querendo usar esse padrão-na maioria das vezes você quer seu índice.js to go something like
var part1 = require('./something-in-the-directory'),
part2 = require('./something-else');
....
module.exports = myCoolInterfaceThatUsesPart1AndPart2UnderTheHood;
Normalmente em outras línguas, o servidor web procura por certos ficheiros para carregar primeiro ao visitar um directório como / em prioridade, tradicionalmente isto é: índice ou padrão. Em php seria índice.php ou apenas HTML simples seria índice.html
No Nó.js, o nó em si é o servidor web para que você não precisa para nomear qualquer índice.js mas é mais fácil para as pessoas entenderem Qual Arquivo Executar primeiro .
Índice.js normalmente lida com a sua aplicação inicialização, roteamento e outras funções de sua aplicação e requer outros módulos para adicionar funcionalidade. Se você estiver executando um site ou aplicativo web que também iria lidar se tornar um servidor Web HTTP básico substituindo o papel de algo mais tradicional como o Apache.
Aqui está um bom artigo explicando como nó.js procura o módulo necessáriohttps://medium.freecodecamp.org/requiring-modules-in-node-js-everything-you-need-to-know-e7fbd119be8, com pasta e index.js
ficheiro
Os módulos não têm de ser Ficheiros. Também podemos criar uma pasta de procura-me em node_módulos e colocar um índice.o ficheiro do js está ali. Mesmo a linha require ('find-me') irá usar o índice dessa pasta.ficheiro 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.
{}
>