Node.js操作MySQL数据库教程

需积分: 0 2 下载量 45 浏览量 更新于2024-08-31 收藏 95KB PDF 举报
"从零学习node.js之mysql数据库的操作(五)" 在Node.js环境中操作MySQL数据库是一项常见的任务,尤其对于构建后端服务来说至关重要。本文将深入探讨如何使用Node.js与MySQL进行交互,包括基本的数据库连接、CRUD操作以及处理异步查询。 1. 安装MySQL模块 在开始之前,确保已经安装了Node.js环境,然后通过npm(Node包管理器)安装`mysql`模块。在项目目录下运行以下命令: ```bash npm install mysql --save-dev ``` 2. 连接数据库 安装完成后,导入`mysql`模块并创建数据库连接。以下是一个简单的示例: ```javascript var mysql = require('mysql'); var conn = mysql.createConnection({ host: '127.0.0.1', user: 'root', password: '123', database: 'test' }); conn.connect(function(err) { if (err) throw err; console.log('连接成功!'); }); // 其他数据库操作... conn.end(function(err) { if (err) throw err; console.log('连接已关闭'); }); ``` 上述代码创建了一个到本地MySQL服务器的连接,指定用户名、密码和数据库名。`connect`方法会尝试建立连接,并在成功或失败时触发回调函数。最后,使用`end`方法关闭连接。 3. CRUD操作 CRUD代表创建(Create)、读取(Read)、更新(Update)和删除(Delete),这是数据库操作的基本动作。 - 创建(Create):向数据库插入新数据。 ```javascript conn.query('INSERT INTO user (username, password, email) VALUES (?, ?, ?)', ['newUser', 'newPassword', 'newEmail@example.com'], function (err, result) { if (err) throw err; console.log('新用户已创建'); }); ``` - 读取(Read):查询数据库获取数据。 ```javascript conn.query('SELECT * FROM user', function (err, results) { if (err) throw err; console.log(results); }); ``` - 更新(Update):修改数据库中的记录。 ```javascript conn.query('UPDATE user SET password = ? WHERE username = ?', ['updatedPassword', 'newUser'], function (err) { if (err) throw err; console.log('密码已更新'); }); ``` - 删除(Delete):从数据库中删除记录。 ```javascript conn.query('DELETE FROM user WHERE username = ?', ['newUser'], function (err) { if (err) throw err; console.log('用户已删除'); }); ``` 4. 异步查询处理 `query`方法是非阻塞的,这意味着多个查询可能并发执行,而不是按照它们在代码中的顺序。如果需要确保特定查询顺序执行,可以使用Promise链或者使用`async/await`语法。 ```javascript (async function() { await conn.query('SQL STATEMENT 1'); await conn.query('SQL STATEMENT 2'); // ... })(); ``` 5. 错误处理 在进行数据库操作时,务必妥善处理可能出现的错误,例如网络问题、无效的SQL语句等。通常,我们将错误处理放在回调函数的第一个参数或使用try/catch结构。 6. 事务处理 对于涉及多条数据库语句的操作,可以使用事务来确保数据的一致性。事务可以保证所有操作都成功完成,或者在任何一步失败时回滚所有更改。 ```javascript conn.beginTransaction(function(err) { if (err) throw err; conn.query('SQL STATEMENT 1', function (err) { if (err) { conn.rollback(function() { throw err; }); } }); conn.query('SQL STATEMENT 2', function (err) { if (err) { conn.rollback(function() { throw err; }); } else { conn.commit(function(err) { if (err) { conn.rollback(function() { throw err; }); } else { console.log('事务完成'); } }); } }); }); ``` 通过以上步骤,你可以开始在Node.js中使用MySQL进行基本的数据操作。随着需求的增长,你还可以探索更高级的主题,如连接池、预处理语句和性能优化。了解这些概念将使你在开发Node.js应用程序时更加得心应手。