在项目中操作 MySQL

打印 上一主题 下一主题

主题 879|帖子 879|积分 2637

在现代Web开发中,Node.js因其非壅闭I/O模型和高效的性能成为了构建后端服务的热门选择之一。与此同时,MySQL作为最流行的关系型数据库管理系统之一,依附其稳定性、可靠性和易用性,在数据存储方面扮演着告急角色。本文将详细先容如安在一个Node.js项目中有用地操作MySQL数据库。
准备工作

安装Node.js和MySQL

确保你的开发环境中已经安装了Node.js。你可以通过运行 node -v 和 npm -v 来查抄是否已正确安装Node.js及其包管理器npm。
接下来,你需要一个MySQL数据库实例。可以通过本地安装MySQL服务器或者利用云服务商提供的MySQL服务。
初始化项目

起首,创建一个新的Node.js项目目次,并初始化npm项目:
  1. mkdir node-mysql-demo
  2. cd node-mysql-demo
  3. npm init -y
复制代码
这会生成一个 package.json 文件,记载项目的依赖信息等。
安装须要的依赖

为了毗连和操作MySQL数据库,我们将利用 mysql2 包。它是一个功能强大的MySQL客户端库,支持Promise API,便于异步编程。
  1. npm install mysql2
复制代码


毗连到MySQL数据库

在项目根目次下创建一个名为 db.js 的文件,用于设置与MySQL数据库的毗连配置:
  1. const mysql = require('mysql2');
  2. // 创建数据库连接池
  3. const pool = mysql.createPool({
  4.   host: 'localhost', // 数据库地址
  5.   user: 'root',      // 用户名
  6.   password: '',      // 密码
  7.   database: 'test_db'// 数据库名称
  8. });
  9. module.exports = pool.promise(); // 返回一个支持Promise的连接池
复制代码
这样做的利益是可以通过毗连池来复用数据库毗连,提高性能。


执行根本的CRUD操作

现在我们可以开始编写一些代码来执行根本的增编削查(CRUD)操作。
查询数据

创建一个 query.js 文件,演示怎样从数据库中查询数据:
  1. const db = require('./db');
  2. async function getProducts() {
  3.     const [rows, fields] = await db.query(
  4.         'SELECT * FROM products WHERE status = ?',
  5.         ['active']
  6.     );
  7.     console.log(rows);
  8. }
  9. getProducts();
复制代码
这里我们利用了预处理语句,以防止SQL注入攻击。
插入数据

同样地,插入新记载也很简单:
  1. async function addProduct(name, price) {
  2.     const [result] = await db.execute(
  3.         'INSERT INTO products (name, price) VALUES (?, ?)',
  4.         [name, price]
  5.     );
  6.     console.log(result.insertId); // 输出新插入记录的ID
  7. }
  8. addProduct('New Product', 9.99);
复制代码
更新数据

更新现有记载如下所示:
  1. async function updateProduct(id, newName) {
  2.     const [result] = await db.execute(
  3.         'UPDATE products SET name = ? WHERE id = ?',
  4.         [newName, id]
  5.     );
  6.     console.log(`Changed rows: ${result.affectedRows}`);
  7. }
  8. updateProduct(1, 'Updated Product Name');
复制代码
删除数据

末了,删除记载可以这样做:
  1. async function deleteProduct(id) {
  2.     const [result] = await db.execute(
  3.         'DELETE FROM products WHERE id = ?',
  4.         [id]
  5.     );
  6.     console.log(`Deleted rows: ${result.affectedRows}`);
  7. }
  8. deleteProduct(1);
复制代码


错误处理

在现实应用中,良好的错误处理机制是非常告急的。下面是怎样改进上述函数以包含根本的错误处理逻辑:
  1. async function safeOperation(operationFn) {
  2.     try {
  3.         await operationFn();
  4.         console.log('Operation succeeded');
  5.     } catch (error) {
  6.         console.error('Error occurred:', error);
  7.     }
  8. }
  9. safeOperation(() => addProduct('Another Product', 19.99));
复制代码


结语

感谢您的阅读!假如您对在Node.js项目中操作MySQL或者其他相关话题有任何疑问或见解,欢迎继续探究。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表