Das net
-Modul, das im MySQL-Knotenmodul erforderlich ist und verwendet wird, ist ein Kernbestandteil von Node.js selbst. Der Fehler, den Sie bezüglich Net.createConnection
erhalten keine Funktion zu sein bedeutet, dass es als leeres Objekt auftaucht und der Fehler mit einem Ihrer Kommentare zu der Frage zusammenhängt:
Sie müssen dieses spezielle Modul nur auf Node.js ausführen, Sie können es nicht in einem Webbrowser ausführen.
Man könnte meinen, eine Möglichkeit wäre, Ihren Code durch einen Packer wie browserify
laufen zu lassen oder Webpack
Sie können also ganz einfach require('mysql')
verwenden in Ihrem Browser, aber es funktioniert nicht. Das net
Modul, das eine Kernabhängigkeit von mysql
ist Modul wird in ein leeres Objekt umgewandelt {}
.Das ist kein Fehler, es soll so funktionieren. Browser haben keine generischen TCP-Implementierungen, daher kann es nicht emuliert werden. Das leere Objekt soll require('net')
verhindern vor Fehlern bei Modulen, die ansonsten im Browser funktionieren.
Um diesen Fehler zu vermeiden, müssen Sie diesen Code in einer reinen Node.js-Umgebung und nicht in einem Browser ausführen. Ein einfacher Server könnte diesen Zweck erfüllen, da dieser Code in Ihrem Client in einem Browser nicht funktionieren kann und eine Sicherheitslücke hinzufügen würde, da alles auf der Clientseite manipulativ und daher nicht sicher ist. Sie möchten Ihre Datenbank nicht auf der Client-Seite verfügbar machen, sondern nur verbrauchen.