net
modul påkrævet og brugt i MySQL-nodemodulet er en kernedel af selve Node.js. Fejlen du får om Net.createConnection
ikke at være en funktion betyder, at den kommer op som et tomt objekt, og fejlen er relateret til en af dine kommentarer til spørgsmålet:
Du skal kun køre dette særlige modul på Node.js, du kan ikke køre det i en webbrowser.
Man kunne tro, at en mulighed ville være at køre din kode gennem en pakker som browserify
eller webpack
så du nemt kan require('mysql')
i din browser, men det virker ikke. net
modul, som er en kerneafhængighed af mysql
modul vil blive transformeret til et tomt objekt {}
.Det er ikke en fejl, det er sådan, det skal fungere. Browsere har ikke generiske tcp-implementeringer, så det kan ikke emuleres. Det tomme objekt er beregnet til at forhindre require('net')
fra at fejle på moduler, der ellers fungerer i browseren.
For at undgå denne fejl skal du køre denne kode i et rent Node.js-miljø, ikke i en browser. En simpel server kunne tjene dette formål, da denne kode i din klient i en browser ikke kan fungere og ville tilføje et sikkerhedshul, da alt på klientsiden er manipulerende og som sådan ikke sikkert. Du ønsker ikke at eksponere din database på klientsiden, men kun forbruge den.