Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro na biblioteca MySQL para Node.js


A net O módulo necessário e usado no módulo de nó do MySQL é uma parte essencial do próprio Node.js. O erro que você está recebendo sobre Net.createConnection não ser uma função significa que está aparecendo como um objeto vazio e o erro está relacionado a um de seus comentários à pergunta:

Você deve executar este módulo específico apenas no Node.js, você não pode executá-lo em um navegador da web.

Alguém poderia pensar que uma possibilidade seria executar seu código através de um empacotador como browserify ou webpack então você pode facilmente require('mysql') no seu navegador, mas não vai funcionar. A net módulo que é uma dependência central do mysql módulo será transformado em um objeto vazio {} .Isso não é um bug, é como deveria funcionar. Os navegadores não têm implementações tcp genéricas, portanto, não podem ser emulados. O objeto vazio destina-se a evitar require('net') de falhar em módulos que de outra forma funcionam no navegador.

Para evitar esse erro, você precisa executar esse código em um ambiente Node.js puro, não em um navegador. Um servidor simples pode servir a esse propósito, pois esse código em seu cliente em um navegador não pode funcionar e adicionaria uma falha de segurança, pois tudo do lado do cliente é manipulador e, portanto, não é seguro. Você não deseja expor seu banco de dados no lado do cliente, mas apenas o consome.