21xrx.com
2024-12-22 19:11:56 Sunday
登录
文章检索 我的文章 写文章
Node.js数据库增删改查的封装
2023-07-05 14:00:52 深夜i     --     --
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 进行异步封装,这样可以使开发人员更加方便地进行数据库的增删改查操作。同时,在编写时要注意相关语法和配置,这样可以确保数据库操作的稳定性和安全性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复