Mysql
 sql >> Database >  >> RDS >> Mysql

Errore nella libreria MySQL per Node.js

La net modulo richiesto e utilizzato nel modulo nodo MySQL è una parte fondamentale di Node.js stesso. L'errore che ricevi su Net.createConnection non essere una funzione significa che si presenta come un oggetto vuoto e l'errore è correlato a uno dei tuoi commenti alla domanda:

Devi eseguire questo particolare modulo solo su Node.js, non puoi eseguirlo in un browser web.

Si potrebbe pensare che una possibilità sarebbe quella di eseguire il codice tramite un packer come browserify o webpack così puoi facilmente require('mysql') nel tuo browser ma non funzionerà. La net modulo che è una dipendenza principale di mysql il modulo verrà trasformato in un oggetto vuoto {} .Non è un bug, è come dovrebbe funzionare. I browser non hanno implementazioni TCP generiche, quindi non possono essere emulati. L'oggetto vuoto ha lo scopo di impedire require('net') dall'errore su moduli che altrimenti funzionano nel browser.

Per evitare questo errore, è necessario eseguire questo codice in un ambiente Node.js puro, non in un browser. Un semplice server potrebbe servire a questo scopo poiché questo codice nel tuo client in un browser non può funzionare e aggiungerebbe un buco di sicurezza poiché tutto il lato client è manipolativo e come tale non sicuro. Non vuoi esporre il tuo database sul lato client ma solo lo consuma.