richiede file in nodejs - singoli file o gruppi?

0

Quando si lavora in NodeJS e si richiedono moduli personalizzati. È consigliabile richiedere un file che richiede di per sé le dipendenze o è meglio richiedere esplicitamente solo i file necessari?

Un esempio potrebbe avere una classe di database che restituisce un pool di connessioni.      db_conn.js

Quindi potrebbero esserci file separati che esportano metodi per salvare diversi tipi di modelli. per esempio

 db_user.js
 db_blog_post.js

Ciascuno di questi file ha bisogno di require('db_conn.js') per ottenere un pool

Ma poi nell'app principale è meglio esplicitamente require('db_user') o è meglio creare un file index.js in una cartella 'db' che a sua volta richiede db_user e db_blog_post che ne esportano i riferimenti?

es

  let blog = require('db_blog_post')
  let user = require('db_user')

  module.exports.user = user
  module.exports.blog = blog

e quindi in un router richiede solo l'intero file

 let db = require('db')

 db.user.save({"some":"value"})
 db.blog.save({"some":"value"})

O il router dovrebbe solo richiedere ciò di cui ha bisogno. ad esempio se interagisce solo con i blog

let db_blog = require('db_blog_post')

db_blog.save({"some":"value"})
// but can't do anything with a user here.

O in realtà è meglio creare solo classi Model che abbiano metodi appropriati come fare uso delle classi ES6?

 save()
 delete()
 etc...

So che questo sembra essere il caso di Mongoose ma sto guardando questo da una prospettiva mysql.

Grazie

    
posta TommyBs 20.10.2017 - 08:28
fonte

1 risposta

1

Come al solito, dipende. Generalmente ho una cartella di cose correlate (ad esempio controller) che include un file index.js. Quel file esporta un oggetto di tutti gli altri file nella stessa cartella, ad esempio:

module.exports = { users : require('./users') }

Questo mi permette di richiedere la cartella stessa altrove, ma anche di fare una richiesta specifica se voglio.

Non penso che ci sia un obiettivo "migliore" qui, dipende da come ti piace organizzare le cose e se usi spesso più file dello stesso tipo in un unico posto.

Quindi, ad esempio, ho spesso un file che configura tutti i miei percorsi, quindi in questo ha senso richiedere l'intera cartella dei controller e chiamarli come il tuo esempio di DB. Raramente ho più di un modello usato nello stesso file, quindi è meno utile farlo in quel modo.

Inoltre, si dovrebbe notare che il tuo esempio è cattivo. Se chiami module.exports = due volte nello stesso file, sovrascrivi il primo con il secondo, poiché si tratta di un'assegnazione di proprietà.

    
risposta data 20.10.2017 - 15:09
fonte

Leggi altre domande sui tag