Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44

    Non riesco a connettermi a mysql con Node.js Express

    Salve a tutti, mi scuso se questa non è la sezione giusta ma mi sembrava la più consona dato che per javascript era solo lato client.

    Sto avendo questo problema che mi sta facendo diventare pazzo. Uso Express e voglio creare una connessione al database. Ho semplicemente installato il pacchetto mysql usando npm e ho scritto il seguente codice (il mio app.js):

    codice:
    var express = require('express');
    var path = require('path');
    var cookieParser = require('cookie-parser');
    var logger = require('morgan');
    var mysql = require('mysql');
    
    //Creo connessione
    const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: ''
    });
    
    //Provo a connettermi
    connection.connect((err) => {
        if(err) {
            console.log(err);
        } else {
            console.log("Connesso al database!");
        }
    });
    
    var authRouter = require('./routes/login');
    var homeRouter = require('./routes/home');
    
    var app = express();
    
    app.use(logger('dev'));
    app.use(express.json());
    app.use(express.urlencoded({ extended: false }));
    app.use(cookieParser());
    app.use(express.static(path.join(__dirname, 'public')));
    
    
    app.set('view engine', 'ejs');
    
    app.use('/', authRouter);
    app.use('/', homeRouter);
    
    app.listen(3000, () => {
        console.log("Running on port 3000");
    })
    
    Il fatto è che quando lo faccio partire mi da sempre l'errore Error: Connection lost: The server closed the connection. Non mi stampa neanche l'errore della connessione non riuscita che dovrebbe darmi questo pezzo:
    codice:
    connection.connect((err) => {    
       if(err) {
            console.log(err);
        } else {
            console.log("Connesso al database!");
        }
    });
    
    Ho provato anche usando XAMPP ma niente, sempre lo stesso errore.
    Ogni aiuto è ben accetto! Grazie

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,062
    JavaScript ha un forum dedicato.

    Sposto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    589
    Prova ad usare un pool di connessioni, qui la doc: https://github.com/mysqljs/mysql#pooling-connections

    In questo modo dovresti riuscire a ricreare la connessione in automatico se viene droppata.
    Se il problema è lato node così dovresti risolvere.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44
    Grazie dell'aiuto, ma sono riuscito a risolvere e non so neanche bene come. Mi è bastato creare un file apposito per la connessione a mysql e includerlo in app.js e ora funziona

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    589
    Puoi spiegarci come hai risolto?

    Così se qualcuno ha lo stesso problema trova anche una soluzione.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44
    Certo! Probabilmente c'era qualche funzione in app.js che interferiva con la connessione, come ho scritto prima ho creato un file apposito per la connessione, l'ho incluso in app.js ed ha funzionato correttamente!

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.