Node.js操作MySQL数据库增删改查教程
本文详细介绍了在Node.js中使用mysql模块进行数据库连接及增删改查(CRUD)操作的方法。涵盖npm安装依赖、创建数据库连接对象,以及通过参数化查询实现数据插入、条件更新、条件删除和全量检索的具体代码示例。
准备环境与连接配置
在使用 Node.js 操作 MySQL 数据库前,需确保本地已安装 Node.js 环境并拥有可用的 MySQL Server。以下操作基于常见的基础开发场景,以 mysql 模块为例演示标准流程。
第1步:安装数据库驱动
项目根目录下执行 npm 命令安装 mysql 包,该模块提供了对 MySQL 协议的 Node.js 接口支持:
npm install mysql
第2步:配置数据库连接信息
建立连接需要明确服务器 IP、端口、账号密码及目标库名。假设服务器位于 192.168.0.108,登录凭证为 root 与 123456,需在数据库中提前创建名为 test 的库及对应表。以下为标准的连接初始化代码片段:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : '192.168.0.108',
user : 'root',
password : '123456',
database : 'test1',
port: '3306'
});
connection.connect();
核心数据结构操作 (CRUD)
完成连接后,可通过 connection.query() 方法执行 SQL 语句。为保证数据安全,建议使用参数化查询方式处理变量。
第3步:插入数据 (Insert)
向 users 表中添加一条新用户记录。使用 ?占位符 自动转义传入的对象属性值,避免 SQL 注入风险:
var usr = {
name: 'zhangsan',
password: 'pwdzhangsan',
mail: 'zhangsan@gmail.com'
};
connection.query('insert into users set ?', usr, function(err, result) {
if (err) throw err;
console.log('Inserted record with ID:', result.insertId);
});
第4步:更新数据 (Update)
根据指定条件修改现有字段。例如将用户名 “zhangsan” 的密码更改为 “ddd”。需注意 WHERE 子句中条件的精准匹配:
connection.query(
'UPDATE users SET password=? WHERE name=?',
['ddd', 'zhangsan'],
function(err, result) {
if (err) throw err;
console.log('Rows affected:', result.affectedRows);
}
);
第5步:删除数据 (Delete)
移除符合条件的记录。此处演示逻辑删除或物理删除操作,务必确认筛选条件的正确性以免误删:
connection.query(
'DELETE FROM users WHERE name=?',
['zhangsan'],
function(err, result) {
if (err) throw err;
console.log('Deleted record.');
}
);
第6步:查询数据 (Select)
检索表中所有用户信息。查询结果通常以二维数组形式返回,需遍历解析各字段:
connection.query('SELECT * FROM users', function(err, rows, fields) {
if (err) throw err;
rows.forEach(function(row) {
console.log('Name: %s, Password: %s', row.name, row.password);
});
});
资源释放与完整流程
在完成所有数据库事务后,必须显式调用 connection.end() 来断开与数据库的 TCP 连接,防止资源泄漏导致后续并发限制问题:
connection.end();
以下是整合了上述增删改查操作的完整示例流程,涵盖了从建立连接到安全退出的生命周期管理:
var mysql = require('mysql');
var connection = mysql.createConnection({
host: '192.168.0.108',
user: 'root',
password: '123456',
database: 'test1',
port: '3306'
});
// 1. 建立连接
connection.connect();
// 2. 模拟 Insert
var usr = { name: 'admin', password: 'pass123', mail: 'admin@test.com' };
connection.query('INSERT INTO users SET ?', usr, function(err, result) {
if (err) throw err;
});
// 3. 模拟 Update
connection.query('UPDATE users SET password=? WHERE name=?', ['newPass', 'admin'], function(err) {
if (err) throw err;
});
// 4. 模拟 Delete
connection.query('DELETE FROM users WHERE name=?', ['admin'], function(err) {
if (err) throw err;
});
// 5. 模拟 Select
connection.query('SELECT * FROM users', function(err, results) {
if (err) throw err;
console.log(results);
});
// 6. 结束连接
connection.end();
以上就是 Node.js 使用 mysql 模块操作 MySQL 数据库的详细内容。更多 Node.js 开发技巧及数据库优化相关资料请继续关注本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









