最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

在哪里放置MySQL连接以避免Node.js中的代码重复

IT培训 admin 9浏览 0评论

在哪里放置MySQL连接以避免Node.js中的代码重复

我在Node.js中使用mysql模块。在我的模型文件中,目前,我在每个方法中指定连接常量。然而,这占用了大量空间,我知道这并不理想。

这就是它的样子。

doSomething: () => {

    var connection = mysql.createConnection({
        host     : config.database.host,
        database : config.database.database,
        user     : config.database.user,
        password : config.database.password
    });

    connection.query( ... );
    connection.destroy();

},



doSomethingElse: () => {

    var connection = mysql.createConnection({
        host     : config.database.host,
        database : config.database.database,
        user     : config.database.user,
        password : config.database.password
    });

    connection.query( ... );
    connection.destroy();


},

任何人都可以推荐一种方法来整理一些东西并减少冗余代码吗?

回答如下:

创建一次连接并将其传递给模块导出。

const mysql = require("mysql");

const conn = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "db"
});

module.exports = conn;

然后,您可以将其导入其他文件并使用它。

var dbConnection = require('./dbConnection');

dbConnection.query();

但是,我建议使用createConnection而不是使用createPool

可以合并连接以简化共享单个连接或管理多个连接。

const mysql = require("mysql");

const conn = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "",
  database: "db"
});

module.exports = conn;

你可以像这样使用它。从表中获取数据后,请确保release连接:

var connectionPool = require('./dbConnection');

connectionPool.getConnection((err, connection) => {
  connection.query('SELECT * FROM table', (error, result) {
    connection.release();
    if(error) throw error;
  });
});

要关闭池中的所有连接:

connectionPool.end(function (err) {
  // all connections in the pool have ended
});

在哪里放置MySQL连接以避免Node.js中的代码重复

我在Node.js中使用mysql模块。在我的模型文件中,目前,我在每个方法中指定连接常量。然而,这占用了大量空间,我知道这并不理想。

这就是它的样子。

doSomething: () => {

    var connection = mysql.createConnection({
        host     : config.database.host,
        database : config.database.database,
        user     : config.database.user,
        password : config.database.password
    });

    connection.query( ... );
    connection.destroy();

},



doSomethingElse: () => {

    var connection = mysql.createConnection({
        host     : config.database.host,
        database : config.database.database,
        user     : config.database.user,
        password : config.database.password
    });

    connection.query( ... );
    connection.destroy();


},

任何人都可以推荐一种方法来整理一些东西并减少冗余代码吗?

回答如下:

创建一次连接并将其传递给模块导出。

const mysql = require("mysql");

const conn = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "db"
});

module.exports = conn;

然后,您可以将其导入其他文件并使用它。

var dbConnection = require('./dbConnection');

dbConnection.query();

但是,我建议使用createConnection而不是使用createPool

可以合并连接以简化共享单个连接或管理多个连接。

const mysql = require("mysql");

const conn = mysql.createPool({
  host: "localhost",
  user: "root",
  password: "",
  database: "db"
});

module.exports = conn;

你可以像这样使用它。从表中获取数据后,请确保release连接:

var connectionPool = require('./dbConnection');

connectionPool.getConnection((err, connection) => {
  connection.query('SELECT * FROM table', (error, result) {
    connection.release();
    if(error) throw error;
  });
});

要关闭池中的所有连接:

connectionPool.end(function (err) {
  // all connections in the pool have ended
});
发布评论

评论列表 (0)

  1. 暂无评论