La mejor manera de estructurar un MySQL + + app nodejs expreso

sakib11:

Yo uso mysql (sin sequelize) y en general crear la conexión en una función module.export que luego requieren de otros archivos, así:

var db;
module.exports={
getConnection = function (){return new Promise(function(resolve, reject){
// db = mysql connection stuff
resolve(db)
});}, 
//other database related operations similarly
}

Ahora, quiero separar todo lo que por ejemplo, yo quiero tener un UserModel que tendrá unas pocas operaciones de bases de datos relacionadas con los usuarios que se acaba de importar la conexión db y así sucesivamente; Pero ¿cuál es la mejor manera de lograr esto? Gracias.

dusthaines:

Dado que se utiliza de manera amplia y no presenta un alto riesgo de conflicto variable de nombres, prefiero agregarlo al objeto global. Entonces nunca tiene que asegurarse de que está siendo incluido, pasó, o importado de un módulo.

Consideremos el siguiente ejemplo:

// in your application initialization file such as app.js

// require items …
const mysql = require('mysql');

const connection = mysql.createPool({
  connectionLimit: 10,
  host: process.env.DB_HOST || '127.0.0.1',
  user: process.env.DB_USER || 'local_user',
  password: process.env.DB_PASSWORD || 'local_password',
  database: process.env.DB_NAME || 'local_database',
  multipleStatements: true, 
  charset: 'utf8mb4' // necessary if you might need support for emoji characters
});

connection.on('connection', function (connection) {
  // handy for testing
  console.log('Pool id %d connected', connection.threadId);
});

connection.on('enqueue', function () {
  // handy for testing
  console.log('Waiting for available connection slot');
});

// make the connection global via the the variable db
global.db = connection;


// everywhere else in your app, use the now global db variable when running queries

  db.query(
    'INSERT INTO users SET ?', [{name: "John Smith"}], function(error, results, fields) {
      if (error) throw error;
      console.log(results);
    });
  }

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=402540&siteId=1
Recomendado
Clasificación