who page node form for first examples example demos create big applications application node.js web-applications project project-management

page - ¿Qué es index.js normalmente utilizado en los proyectos de node.js



node.js web page example (3)

Aquí hay un buen artículo explicando cómo Node.js busca el módulo requerido https://medium.freecodecamp.org/requiring-modules-in-node-js-everything-you-need-to-know-e7fbd119be8 , con carpeta e index.js archivo index.js

Los módulos no tienen que ser archivos. También podemos crear una carpeta find-me en node_modules y colocar un archivo index.js allí. La misma línea require (''find-me'') usará el archivo index.js de esa carpeta:

~/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. {} >

Aparte de una buena manera de requerir todos los archivos en un directorio ( node.js requiere todos los archivos en una carpeta? ), ¿Para qué sirve index.js principalmente? ¿tiene una utilidad de "mejores prácticas"?


Cuando pasa una carpeta a Node''s require (), buscará un paquete.json para un punto final. Si eso no está definido, comprueba si hay index.js y finalmente index.node (un formato de extensión de C ++). Entonces el index.js es muy probablemente el punto de entrada para requerir un módulo.

Consulte los Documentos oficiales aquí: http://nodejs.org/api/modules.html#modules_folders_as_modules .

Además, pregunta cómo solicitar todos los archivos en un directorio. Normalmente, necesita un directorio con un index.js que expone alguna interfaz encapsulada a esos archivos; la forma de hacerlo será diferente para cada módulo. Pero supongamos que desea incluir el contenido de una carpeta cuando incluye la carpeta (tenga en cuenta que esta no es una buena práctica y aparece con menos frecuencia de lo que podría pensar). Luego, podría usar un index.js que cargue todos los archivos en el directorio de forma síncrona (configurar las exportaciones de forma asincrónica suele pedir errores terribles) y los adjunta a module.exports como sigue:

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) ); } });

Casi nunca veo personas que quieran usar ese patrón, la mayoría de las veces quieres que index.js vaya más o menos como

var part1 = require(''./something-in-the-directory''), part2 = require(''./something-else''); .... module.exports = myCoolInterfaceThatUsesPart1AndPart2UnderTheHood;


Normalmente, en otros idiomas, el servidor web busca ciertos archivos para cargar primero cuando visita un directorio como / en prioridad, tradicionalmente esto es: índice o predeterminado. En php, sería index.php o simplemente HTML sería index.html

En Node.js, Node en sí mismo es el servidor web, por lo que no necesita nombrar nada index.js, pero es más fácil para las personas comprender qué archivo ejecutar primero .

index.js normalmente maneja el inicio de su aplicación, el enrutamiento y otras funciones de su aplicación y requiere otros módulos para agregar funcionalidad. Si está ejecutando un sitio web o una aplicación web, también podría convertirse en un servidor web HTTP básico que reemplace el rol de algo más tradicional como Apache.