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

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

来源: 责编: 时间:2023-10-26 17:10:28 403观看
导读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 都能满足您的需求。58U28资讯网——每日最新资讯28at.com

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

关键特性

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

安装与使用

$ npm install rdb

示例

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

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

npm install sqlite3

map.js 地图.js58U28资讯网——每日最新资讯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 更新.js58U28资讯网——每日最新资讯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 过滤器.js58U28资讯网——每日最新资讯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 });}


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

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

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

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

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

标签:
  • 热门焦点
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的“7天甘肃行”直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,“7
  • 阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的“征求意见版”:1、取消P序列
  • 消息称小米汽车开始筛选交付中心:需至少120个车位

    IT之家 7 月 7 日消息,日前,有微博简介为“汽车行业从业者、长三角一体化拥护者”的微博用户 @长三角行健者 发文表示,据经销商集团反馈,小米汽车目前
  • 华为和江淮汽车合作开发百万元问界MPV?双方回应来了

    8月1日消息,郭明錤今天在社交平台发文称,华为正在和江淮汽车合作,开发售价在100万元的问界MPV,预计在2024年第2季度量产,销量目标为上市首年交付5万辆。
  • 三星获批量产iPhone 15全系屏幕:苹果史上最惊艳直屏

    按照惯例,苹果将继续在今年9月举办一年一度的秋季新品发布会,有传言称发布会将于9月12日举行,届时全新的iPhone 15系列将正式与大家见面,不出意外的话
  • 机构称Q2全球智能手机出货量同比下滑11% 苹果份额依旧第2

    7月20日消息,据外媒报道,研究机构的报告显示,由于需求下滑,今年二季度全球智能手机的出货量,同比下滑了11%,三星、苹果等主要厂商的销量,较去年同期均有下
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
Top