使用Node.js MySQL库的正确方法是什么?

哈米什

目前,我正在使用Node.js中的MySQL库,但是我对使用此库的正确/最有效方法有疑问。

根据w3schools的说法,进行单个查询的正确方法是使用这样的代码

var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

con.connect(function(err) {
  if (err) throw err;
  con.query("SELECT * FROM customers", function (err, result, fields) {
    if (err) throw err;
    console.log(result);
  });
});

但是,说我想进行一个事件将执行的多个查询,例如我将如何处理?我是否应该创建一个“初始化”函数,该函数在这样的程序运行后立即执行?

var mysql = require('mysql');

var database;

//Initialise database
function setupDatabase() {
    database = mysql.createConnection({ 
        host: token.host,
        user: token.user,
        password: token.password,
        database: token.database,
        port: token.port
    });
}

//Imagine this could be called at any time after execution
function event() {
    if(database != null) {
        database.connect(function(err) {
            if (err) throw err;
            database.query("SELECT * FROM customers", function (err, result, fields) {
                if (err) throw err;
                console.log(result);
            });
        });
    }
}

而且,我每次查询时是否都必须连接到数据库,或者可以将“ database.connect”调用添加到诸如此类的setupDatabase函数中吗?

var mysql = require('mysql');

var database;

//Initialise database
function setupDatabase() {
    database = mysql.createConnection({ 
        host: token.host,
        user: token.user,
        password: token.password,
        database: token.database,
        port: token.port
    });

    if(database != null) {
        database.connect(function(err) {
            if (err) throw err;
        });
    }
}

//Imagine this could be called at any time after execution
function event() {
    if(database != null) {
        database.query("SELECT * FROM customers", function (err, result, fields) {
            if (err) throw err;
            console.log(result);
        });
    }
}

我主要担心的是,每当我进行查询时调用con.connect函数都会很慢,尽管它们是异步的,但我希望使用正确/最有效的方式。到目前为止,我只测试了第一个代码片段,请随意纠正我的任何错误。

每个应用程序实时生存时间仅需进行一次数据库连接(除非断开连接)。然后,您可以根据需要进行任意查询。

只需将数据库连接例程放在单独的文件中的某个位置,然后在应用程序初始化步骤中要求它。

// mysql.js
const mysql = require('mysql');
module.exports = mysql.createConnection({
  host: "localhost",
  user: "yourusername",
  password: "yourpassword",
  database: "mydb"
});

或者在需要数据库连接的任何地方都需要它-它会返回已连接的数据库对象,而不会一次又一次地重新运行该代码。

// inex.js
const databse = require('./mysql')
database.query("SELECT * FROM customers")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

设置 Node.js 和 MySQL 的正确方法是什么?

同时使用Node.js中的许多MySQL服务器的正确方法是什么?

使用node.js postgresql模块的正确方法是什么?

Node.js:拆分代码的正确方法是什么?

Node.js中要求的正确方法是什么?

在 node.js 中 fork 循环的正确方法是什么

仅使用Node JS中包含数据的变量的正确方法是什么?

在 Javascript(以及 Node.js)中使用 async/await 和 Promises 的正确方法是什么?

在 Node.js 中,使用 async / await 处理错误的正确方法是什么?

在node.js中使用async / await处理承诺拒绝的正确方法是什么?

在Node.js中使用Akka的最佳方法是什么

在node.js v11.0.0中进行更改后,使用array.sort(a,b)的正确方法是什么?

使用nodejs和MySQL从数据库检索数据的正确方法是什么?

从Node使用Jasmine的正确方法是什么?

“使用simple-peer.js库断开对等方并停止在这些对等方之间进行流传输的正确方法是什么?”

从Node.js中的AWS Lambda函数返回的正确方法是什么?

在node.js中计算Content-length标头的正确方法是什么

在Node.js 7中,抑制UnhandledPromiseRejectionWarning的正确方法是什么?

从Angular向Node js API发出HTTP请求的正确方法是什么?

使用CocoaPods安装的库的正确方法是什么?

NodeJS:请求库-使用userQueryString的正确方法是什么?

使用 node.js 通过条件向多个主题发送 FCM 通知的正确语法是什么?

在Webpack中使用Three.js以便我可以使用OrbitControls的正确方法是什么?

实现数据库查询以在node.js项目中读写MySQL副本的正确方法?

使用ClientDependency Framework动态添加CSS或JS的正确方法是什么?

使用 Instafeed.js 显示非方形 Instagram 图像的正确方法是什么?

(MERN)使用Express.js服务React应用的正确方法是什么?

如何在Node.js中正确使用ssh2-sftp-client库的fastGet方法?

在 Node.js 上安装前端库的目的是什么?