net
модулът, необходим и използван в модула MySQL node, е основна част от самия Node.js. Грешката, която получавате за Net.createConnection
това, че не е функция, означава, че се появява като празен обект и грешката е свързана с един от вашите коментари към въпроса:
Трябва да стартирате този конкретен модул само на Node.js, не можете да го стартирате в уеб браузър.
Човек може да си помисли, че е възможно да стартирате кода си чрез пакет като browserify
или webpack
така че можете лесно да require('mysql')
във вашия браузър, но няма да работи. net
модул, който е основна зависимост на mysql
модулът ще бъде трансформиран в празен обект {}
.Това не е грешка, така трябва да работи. Браузърите нямат общи tcp реализации, така че не могат да бъдат емулирани. Празният обект е предназначен да предотврати require('net')
от неизправност на модули, които иначе работят в браузъра.
За да избегнете тази грешка, трябва да стартирате този код в чиста Node.js среда, а не в браузър. Един прост сървър може да служи за тази цел, тъй като този код във вашия клиент в браузър не може да работи и би добавил дупка в сигурността, тъй като всичко от страна на клиента е манипулативно и като такова не е защитено. Не искате да излагате вашата база данни от страна на клиента, а само да я консумирате.