Grazie Alka
ecco il metodo di lettura per id
in db.js faccio la connessione al db
const config = require("./config.json");
const mysql = require('mysql2');
const Sequelize = require('sequelize')
const sequelize = new Sequelize(
config.database,
config.user,
config.password,
{
host: config.host,
dialect: config.dialect,
operatorsAliases: 0,
pool: {
max: config.pool.max,
min: config.pool.min,
acquire: config.pool.acquire,
idle: config.pool.idle
}
}
);
let db;
// variante per connettere sia localhost che in produzione su heroku
if(process.env.CLEARDB_DATABASE_URL) {
db = mysql.createConnection(process.env.CLEARDB_DATABASE_URL)
} else {
db = mysql.createConnection({
host: config.host,
user: config.user,
password: config.password,
database:config.database,
port:config.port
});
}
// connettere Mysql utilizzato con create connection
db.connect(err=> {
if(err) {
console.log(err,'errore in connessione Mysql');
}else {
console.log('Mysql connected con successo');
}
})
poi nei metodi di gesione tabelle faccio le query
exports.getbyid = (req,res)=> {
let id = req.params.id;
const strsql = strSql + ' where `bigliettos`.`id` = ' + id;
db.query(strsql,(err,result)=> {
if(err) {
res.status(500).send({
message: `2 errore il lettura bigliettos for id ${id}- errore: ${err}`,
rc: 'kk',
data:null
});
return;
}
if(result.length>0) {
res.status(200).send({
message:`situazione attuale per evento id: ..... ${id}`,
rc: 'ok',
data:result[0]
});
}else {
res.status(200).send({
message: `nessun evento presente for id: ${id}`,
rc: 'nf',
data:null
});
}
});
}
In questo metodo eseguo solo la query senza effettuare la db.connect e db.close
ho modiificato un metodo in cui effettuo la connessione prima di effettuare la query e la disconnessione alla fine.
dimmi se può andare bene.
Se corretta, devo effettuare la modifica su tutti i metodi di tutti i controller per effettuare la “connessione” prima di eseguire le query e la "disconnessione" alla fine del metodo.
exports.getAll = (req,res)=> {
db.connect(); <--------- effettuo la connessione prima di operare
let strsql = strSql; // 'select * from bigliettos';
db.query(strsql,(err,result)=> {
if(err) {
res.status(500).send({
message: `3 errore il lettura all bigliettos - erro: ${err}`,
data:null
});
return;
}
if(result.length>0) {
res.status(200).send({
message:'Situazione attuale ',
rc: 'ok',
number: result.length,
data:result
});
}else {
res.status(200).send({
message: `nessun evento presente `,
rc: 'nf',
data:null
});
}
});
db.end(); <---------------- effettuo la disconnessione a fine metodo
}
Pensi possa andare bene ?
grazie
Moreno