本文共 3097 字,大约阅读时间需要 10 分钟。
在开发过程中,Node.js与MySQL的连接配置及数据库操作是开发者常需要关注的重要环节。本文将详细介绍MySQL连接的设置、数据库操作的实现以及连接池的管理等内容,帮助开发者更高效地进行数据库操作。
首先,我们需要安装MySQL客户端,以便通过Node.js与数据库进行交互。可以通过以下命令安装:
npm install mysql
在Node.js程序中,我们需要使用mysql模块来配置数据库连接。以下是一个典型的连接配置示例:
var mysql = require('mysql');var connection = mysql.createConnection({ host: '192.168.0.200', // 数据库主机地址 user: 'root', // 数据库用户 password: 'abcd', // 数据库密码 port: 3306, // 数据库端口 database: 'nodesample' // 数据库名称}); 连接建立完成后,可以通过以下方式执行查询操作:
connection.connect(function(err) { if (err) { console.log('[query] - ' + err); return; } console.log('[connection connect] succeed!');}); 为了将数据插入数据库,可以使用INSERT语句。以下是一个插入数据的示例:
var userAddSql = 'INSERT INTO userinfo(Id, UserName, UserPass) VALUES(0, ?, ?)';var userAddSql_Params = ['Wilson', 'abcd'];connection.query(userAddSql, userAddSql_Params, function(err, result) { if (err) { console.log('[INSERT ERROR] - ' + err.message); return; } console.log('插入成功!');}); 为了检索数据库中的数据,可以使用SELECT语句。以下是一个查询数据的示例:
var userGetSql = 'SELECT * FROM userinfo';connection.query(userGetSql, function(err, result) { if (err) { console.log('[SELECT ERROR] - ' + err.message); return; } console.log('查询结果:' + JSON.stringify(result));}); 在实际应用中,数据库连接的管理至关重要。以下是几种常用的方法。
为了提高数据库连接的效率,可以使用连接池。以下是一个连接池的配置示例:
var mysql = require('mysql');var pool = mysql.createPool({ host: '192.168.0.200', user: 'root', password: 'abcd', port: 3306, database: 'nodesample'});pool.getConnection(function(err, connection) { if (err) { console.log('获取连接失败'); return; } connection.query('SELECT * FROM userinfo;', function(err, result) { console.log('查询结果:' + JSON.stringify(result)); connection.release(); });}); 在使用完连接后,应及时释放它以供其他请求使用。可以通过connection.release()方法实现:
pool.getConnection(function(err, connection) { if (err) { console.log('获取连接失败'); return; } connection.query('SELECT * FROM userinfo;', function(err, result) { console.log('查询结果:' + JSON.stringify(result)); connection.release(); });}); 在实际应用中,网络中断或其他异常情况可能导致数据库连接丢失。为了处理这种情况,可以实现断线重连机制。以下是一个简单的重连实现示例:
var mysql = require('mysql');var db_config = { host: '192.168.0.200', user: 'root', password: 'abcd', port: 3306, database: 'nodesample'};var connection;function handleDisconnect() { connection = mysql.createConnection(db_config); connection.connect(function(err) { if (err) { console.log('进行断线重连:' + new Date()); setTimeout(handleDisconnect, 2000); return; } console.log('连接成功'); }); connection.on('error', function(err) { console.log('db error', err); if (err.code === 'PROTOCOL_CONNECTION_LOST') { handleDisconnect(); } else { throw err; } });}handleDisconnect(); 通过以上配置和操作,我们可以更高效地与MySQL数据库进行交互。在实际开发中,建议合理使用连接池,并配置断线重连机制,以提高数据库操作的稳定性和性能。同时,注意及时释放数据库连接,避免连接耗尽的问题。
转载地址:http://rxjfk.baihongyu.com/