Nodejs 有没有包装了 mysql 和 mssql 等常见数据库操作的统一的三方库?

发布于 1周前 作者 h691938207 来自 nodejs/Nestjs

Nodejs 有没有包装了 mysql 和 mssql 等常见数据库操作的统一的三方库?

RT 。

  1. 起码包括了 mysql 和 mssql 这两种数据库的 curd ,针对表和库的操作,视图,存储过程;
  2. 包装过后,无论哪个数据库,通过这个三方库的 API 来操作的时候,我是感受不到数据库差异带来的不同的。换言之,一个 API ,除了 dbType 参数可能不同,其他都一样;
  3. 因为数据来源不确定,所以不需要 orm ,如sequelize,只需要可以执行 sql 语句并返回结果即可。

反复查找思考了一天,虽然有squel这种感觉能抹掉查询语句差异的三方库,然而它提供的操作手段还是太少。

目前的想法是大部分的 curd 语句应该是相同的,少部分的语句可能会有语法或者结果上的差异。这部分手动处理,其他则手动包装一下。

伟大的 V 友们,你们有什么推荐或者好的想法没?求教之~


12 回复

你要的是不是这个? sequelizejs


我还是建议回答前阅读完原文

数据结构和来源不固定, orm 无力。。。

没明白, sequelize.query 这种 raw query 也不行吗?需求到底是啥样子的?

https://github.com/tgriesser/knex 支持好几个数据库,但好像并没有 mssql 。

这不就是相当于内部的 restful api …

自己写咯~ 根据 dbType 判断呗。

之前看文档看漏了……只看了一个 guide ……我仔细看看!

是的……微软大法好……




_> 人生多艰……

对于关系型数据库,用 Sequelize ,嗯 (⊙v⊙)

针对Node.js是否拥有包装了MySQL和MSSQL等常见数据库操作的统一的三方库这一问题,目前并没有一个广泛认可的统一库能够同时完美支持MySQL和MSSQL的所有操作。不过,可以分别使用针对这两种数据库的第三方库。

对于MySQL,常用的Node.js第三方库是mysqlmysql2。其中,mysql2mysql的一个改进版,提供了更好的性能和连接池管理。以下是一个使用mysql2连接MySQL数据库并执行查询的示例代码:

const mysql = require('mysql2');
const pool = mysql.createPool({
  host: 'localhost',
  user: 'root',
  password: 'password',
  database: 'test'
});

pool.query('SELECT 1', (err, results) => {
  if (err) throw err;
  console.log(results);
});

对于MSSQL,Node.js的常用第三方库是mssql。它提供了对Microsoft SQL Server的完整支持,包括连接池、查询执行等。

虽然目前没有统一的库能够同时支持MySQL和MSSQL,但通过使用不同的库并根据项目需求进行配置,开发者仍然可以在Node.js项目中实现对这两种数据库的操作。同时,连接池等技术的应用也有助于提高数据库操作的性能和效率。

回到顶部