当前位置:首页 > 科技  > 软件

RDB.js:适用于 Node.js 和 Typescript 的终极对象关系映射器

来源: 责编: 时间:2023-10-26 17:10:28 375观看
导读RDB.js 是适用于 Node.js 和 Typescript 的终极对象关系映射器,可与 Postgres、MS SQL、MySQL、Sybase SAP 和 SQLite 等流行数据库无缝集成。无论您是使用 TypeScript 还是 JavaScript(包括 CommonJS 和 ECMAScript)构

RDB.js 是适用于 Node.js 和 Typescript 的终极对象关系映射器,可与 Postgres、MS SQL、MySQL、Sybase SAP 和 SQLite 等流行数据库无缝集成。无论您是使用 TypeScript 还是 JavaScript(包括 CommonJS 和 ECMAScript)构建应用程序,RDB 都能满足您的需求。XhL28资讯网——每日最新资讯28at.com

RDB.js:https://rdbjs.org/XhL28资讯网——每日最新资讯28at.com

关键特性

  • 丰富的查询模式:RDB 提供了强大而直观的查询模型,可轻松检索、过滤和操作数据库中的数据。
  • 简明 API:RDB 拥有简明且便于开发人员使用的 API,可让您使用简单而富有表现力的语法与数据库进行交互。
  • 无需代码生成:享受完整的智能感知,即使在表映射中,也不需要繁琐的代码生成。
  • 支持 TypeScript 和 JavaScript:RDB 完全支持 TypeScript 和 JavaScript,让您可以充分利用静态类型和现代 ECMAScript 功能的优势。
  • 可在浏览器中使用:通过使用 Express.js 插件,您可以在浏览器中安全地使用 RDB,该插件用于保护敏感的数据库凭据,避免在客户端级别暴露。这个方法反映了传统的 REST API,并使用了高级 TypeScript 工具来增强功能。

安装与使用

$ npm install rdb

示例

XhL28资讯网——每日最新资讯28at.com

这里我们选择 SQLite。XhL28资讯网——每日最新资讯28at.com

npm install sqlite3

map.js 地图.jsXhL28资讯网——每日最新资讯28at.com

import rdb from "rdb";const map = rdb  .map((x) => ({    customer: x.table("customer").map(({ column }) => ({      id: column("id")        .numeric()        .primary()        .notNullExceptInsert(),      name: column("name").string(),      balance: column("balance").numeric(),      isActive: column("isActive").boolean(),    })),    order: x.table("_order").map(({ column }) => ({      id: column("id")        .numeric()        .primary()        .notNullExceptInsert(),      orderDate: column("orderDate").date().notNull(),      customerId: column("customerId")        .numeric()        .notNullExceptInsert(),    })),    orderLine: x.table("orderLine").map(({ column }) => ({      id: column("id").numeric().primary(),      orderId: column("orderId").numeric(),      product: column("product").string(),    })),    deliveryAddress: x      .table("deliveryAddress")      .map(({ column }) => ({        id: column("id").numeric().primary(),        orderId: column("orderId").numeric(),        name: column("name").string(),        street: column("street").string(),        postalCode: column("postalCode").string(),        postalPlace: column("postalPlace").string(),        countryCode: column("countryCode").string(),      })),  }))  .map((x) => ({    order: x.order.map((v) => ({      customer: v.references(x.customer).by("customerId"),      lines: v.hasMany(x.orderLine).by("orderId"),      deliveryAddress: hasOne(x.deliveryAddress).by(        "orderId"      ),    })),  }));export default map;

update.js 更新.jsXhL28资讯网——每日最新资讯28at.com

import map from "./map";const db = map.sqlite("demo.db");updateRow();async function updateRow() {  const order = await db.order.getById(2, {    lines: true,  });  order.lines.push({    product: "broomstick",  });  await order.saveChanges();}

filter.js 过滤器.jsXhL28资讯网——每日最新资讯28at.com

import map from "./map";const db = map.sqlite("demo.db");getRows();async function getRows() {  const filter = db.order.lines    .any((line) => line.product.contains("broomstick"))    .and(db.order.customer.name.startsWith("Harry"));  const orders = await db.order.getMany(filter, {    lines: true,    deliveryAddress: true,    customer: true,  });  console.dir(orders, { depth: Infinity });}


XhL28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-15185-0.htmlRDB.js:适用于 Node.js 和 Typescript 的终极对象关系映射器

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 掌握Go编程中的错误处理和日志记录

下一篇: Golang中的错误处理:全面指南及示例

标签:
  • 热门焦点
  • 俄罗斯:将审查iPhone等外国公司设备 保数据安全

    iPhone和特斯拉都属于在各自领域领头羊的品牌,推出的产品也也都是数一数二的,但对于一些国家而言,它们的产品可靠性和安全性还是在限制范围内。近日,俄罗斯联邦通信、信息技术
  • 把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 微软邀请 Microsoft 365 商业用户,测试视频编辑器 Clipchamp

    8 月 1 日消息,微软近日宣布即将面向 Microsoft 365 商业用户,开放 Clipchamp 应用,邀请用户通过该应用来编辑视频。微软于 2021 年收购 Clipchamp,随后开始逐步整合到 Microsof
  • 签约井川里予、何丹彤,单视频点赞近千万,MCN黑马永恒文希快速崛起!

    来源:视听观察永恒文希传媒作为一家MCN公司,说起它的名字来,可能大家会觉得有点儿陌生,但是说出来下面一串的名字之后,或许大家就会感到震惊,原来这么多网红,都签约这家公司了。根
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top