21xrx.com
2025-06-25 04:18:57 Wednesday
登录
文章检索 我的文章 写文章
Node.js数据库增删改查的封装
2023-07-05 14:00:52 深夜i     20     0
Node js 数据库 增删改查 封装 CRUD

随着 Node.js 在后端应用越来越广泛,其对数据库的操作需求也越来越多,因此将数据库的增删改查操作封装成适合 Node.js 的模块是非常有意义的事情。

在 Node.js 中,操作数据库有很多模块可以使用,如 Mongoose、Sequelize 等,但是这些模块虽然能够提供一些方便的操作,但是对于底层的数据库操作原理理解不够深入的开发人员来说,使用这些模块仍然会遇到一些问题。

因此,进行数据库操作的封装成为了一个必要且亟待解决的问题。具体来说,封装的主要目的是把底层的各种数据库操作隐藏起来,开发人员只需要关心操作的具体语法以及相关配置即可。

对于数据库的增删改查操作而言,其底层操作逻辑并不难理解,只需用到数据库的几个基本语句即可。例如,在 MySQL 中,使用 INSERT 语句进行插入操作,使用 DELETE 进行删除操作,使用 UPDATE 进行修改操作,使用 SELECT 进行查询操作。将这几个语句封装成函数,然后将参数传入相应的函数即可完成相应的操作,这是一个比较好的封装方案。

在具体实现时,可以采用 Promise 或 async/await 进行异步封装。使用 Promise 进行异步封装的话,可以参考以下示例代码:

const mysql = require('mysql');
function query(sql, params) {
  return new Promise((resolve, reject) => {
    const connection = mysql.createConnection(
      user: 'root');
    connection.connect();
    connection.query(sql, params, (error, results, fields) => {
      if (error) {
        reject(error);
      } else {
        resolve(results);
      }
    });
    connection.end();
  });
}
(async () => {
  try {
    const results = await query('SELECT * FROM `users` WHERE `name` = ?', ['John']);
    console.log(results);
  } catch (error) {
    console.error(error);
  }
})();

使用 async/await 进行异步封装的话,也可以参考以下代码:

const mysql = require('mysql');
class Database {
  constructor(config) {
    this.connection = mysql.createConnection(config);
    this.connection.connect();
  }
  async query(sql, params) {
    return new Promise((resolve, reject) => {
      this.connection.query(sql, params, (error, results, fields) => {
        if (error) {
          reject(error);
        } else {
          resolve(results);
        }
      });
    });
  }
  close() {
    this.connection.end();
  }
}
(async () => {
  const db = new Database(
  );
  try {
    const results = await db.query('SELECT * FROM `users` WHERE `name` = ?', ['John']);
    console.log(results);
  } catch (error) {
    console.error(error);
  } finally {
    db.close();
  }
})();

综上所述,对于 Node.js 的数据库操作,封装成适合 Node.js 的模块是非常有必要的。在实现时,可以使用 Promise 或 async/await 进行异步封装,这样可以使开发人员更加方便地进行数据库的增删改查操作。同时,在编写时要注意相关语法和配置,这样可以确保数据库操作的稳定性和安全性。

  
  

评论区