Estoy tratando de conectar el proyecto de mi escuela a una base de datos mysql, pero siempre aparece el error "TypeError: connection.connect no es una función". No estoy muy seguro de cómo solucionarlo. Espero que alguien sea capaz de solucionar esto.
Mi index.js
const express = require('express'); const app = express(); var connection = require('./database'); app.use(express.static('public')); app.get('/form', (req,res) =>{ res.sendFile(__dirname + '/public/index.html' ); console.log(req.url); console.log(req.path); }) app.listen(4000, () =>{ console.log("Server listening on port 4000"); connection.connect((err) => { if(err) throw err; console.log("Connected"); }) });mi base de datos.js
let mysql = require('mysql'); module.exports = () => { return mysql.createConnection({ host: 'localhost', database: 'minigames', user: 'root', password: 'root' })}```connection es el valor exportado desde el módulo de base de datos.
El valor que asignó a module.exports hay una función que definió.
Es una función simple y ordinaria y no le ha asignado una propiedad de connect .
Supongo que connect es una propiedad en el valor de retorno de mysql.createConnection , pero si desea acceder a ese objeto, debe llamar a la función que definió para obtener ese objeto.
const express = require('express'); const app = express(); var connection = require('./database'); app.listen(4000, () =>{ console.log("Server listening on port 4000"); connection().connect((err) => { if(err) throw err; console.log("Connected"); }) });