Het net
module vereist en gebruikt in de MySQL-knooppuntmodule is een kernonderdeel van Node.js zelf. De foutmelding die je krijgt over Net.createConnection
dat het geen functie is, betekent dat het als een leeg object naar voren komt en de fout is gerelateerd aan een van uw opmerkingen bij de vraag:
U moet deze specifieke module alleen op Node.js uitvoeren, u kunt deze niet in een webbrowser uitvoeren.
Je zou kunnen denken dat het een mogelijkheid zou zijn om je code door een packer te laten lopen zoals browserify
of webpack
zodat u gemakkelijk require('mysql')
in uw browser, maar het zal niet werken. Het net
module die een kernafhankelijkheid is van de mysql
module wordt omgezet in een leeg object {}
.Dat is geen bug, het is hoe het zou moeten werken. Browsers hebben geen generieke tcp-implementaties, dus het kan niet worden geëmuleerd. Het lege object is bedoeld om te voorkomen dat require('net')
tegen falen op modules die anders in de browser werken.
Om deze fout te voorkomen, moet u deze code in een pure Node.js-omgeving uitvoeren, niet in een browser. Een eenvoudige server zou dit doel kunnen dienen, aangezien deze code in uw client in een browser niet kan werken en een beveiligingslek zou toevoegen omdat alles aan de clientzijde manipulatief is en als zodanig niet veilig. U wilt uw database niet aan de clientzijde blootstellen, maar alleen gebruiken.