2016-03-15 21 views
12

In node.js, sembra corro negli stessi 3 nomi di file per descrivere il punto di ingresso principale per un app:Convenzioni per app.js, index.js e server.js in node.js?

  • Quando si utilizza il pacchetto express-generator, un file app.js viene creato come il principale punto di accesso per l'app risultante.
  • Quando si crea un nuovo file npm init, viene richiesto il file del punto di ingresso principale. Il valore predefinito è dato come index.js.
  • In alcuni programmi che ho visto, server.js funge anche da punto di ingresso principale.

Altre volte, tuttavia, sembra che ci siano sottili differenze nel loro utilizzo. Ad esempio, questo nodo struttura di directory applicazione utilizza index.js e server.js in diversi contesti:

app 
    |- modules 
    | |- moduleA 
    | | |- controllers 
    | | | |- controllerA.js 
    | | | +- controllerB.js 
    | | |- services 
    | | | +- someService.js 
    | | +- index.js <-------------- 
    | +- index.js <------------------- 
    |- middleware.js 
    +- index.js <------------------------ 
config 
    +- index.js <------------------------ 
web 
    |- css 
    |- js 
server.js <---------------------------- 

Quali sono le differenze, se del caso, tra questi tre nomi?

+2

Sono _giusti nomi.Non pensaci troppo, basta essere coerenti con il tuo lavoro – Oka

+3

Una cosa da notare su index.js è quella di 'require ('./ config'); tu richiede *./config/index.js * file quindi è fondamentalmente il file di ingresso principale per la directory. Altrimenti sono solo nomi come indicato da Oka – Molda

+1

quando si esegue 'npm init' sembra che il valore predefinito sia' index.js' –

risposta

2

In realtà tutti sono solo nomi e devi essere coerente nel tuo lavoro come sottolineato da @Oka in una risposta precedente.

L'unico punto valido qui è che la natura modulare del nodo può svolgere un ruolo importante nella tua decisione, come sottolineato nella sezione Folders as Modules della documentazione NodeJS ci sono 3 modi in cui una cartella può essere passata a require() come argomento e il secondo e uno comune è quello di caricare automaticamente il file index.js dalla cartella, questo è il modo in cui un sacco di pacchetti NPM sono costruiti e in quanto è semplice e standard in base al caricamento automatico della funzionalità NodeJS. Sembra la scelta migliore se stai sviluppando un pacchetto NPM.

Alla fine, come altri hanno sottolineato, è possibile scegliere uno dei tre, o anche un altro, ma attenersi alla vostra decisione. La mia decisione era quella di usare sempre index.js sulla base del fatto sopra menzionato.

+1

perché alcuni le persone usano app.js invece di index.js? ci deve essere una ragione, giusto? –

4

Dove lavoro, non ci siamo realmente accontentati di un formato, quindi abbiamo alcune app con index.js, alcune con server.js. Inoltre, in alcuni abbiamo un file config.js a livello di root, altri sono in una cartella di configurazione (quindi require (config/config.js). Ne abbiamo anche uno dove server.js è in una cartella del server.

Il problema viene quando si vuole automatizzare il nostro processo di distribuzione. diventa come debito tecnico quando dobbiamo fare un po 'di piccole modifiche per ogni servizio.

detto questo, scegliere un formato che ha senso per voi e