日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

RDB.js:適用于 Node.js 和 Typescript 的終極對象關(guān)系映射器

來源: 責(zé)編: 時間:2023-10-26 17:10:28 277觀看
導(dǎo)讀RDB.js 是適用于 Node.js 和 Typescript 的終極對象關(guān)系映射器,可與 Postgres、MS SQL、MySQL、Sybase SAP 和 SQLite 等流行數(shù)據(jù)庫無縫集成。無論您是使用 TypeScript 還是 JavaScript(包括 CommonJS 和 ECMAScript)構(gòu)

RDB.js 是適用于 Node.js 和 Typescript 的終極對象關(guān)系映射器,可與 Postgres、MS SQL、MySQL、Sybase SAP 和 SQLite 等流行數(shù)據(jù)庫無縫集成。無論您是使用 TypeScript 還是 JavaScript(包括 CommonJS 和 ECMAScript)構(gòu)建應(yīng)用程序,RDB 都能滿足您的需求。o9D28資訊網(wǎng)——每日最新資訊28at.com

RDB.js:https://rdbjs.org/o9D28資訊網(wǎng)——每日最新資訊28at.com

關(guān)鍵特性

  • 豐富的查詢模式:RDB 提供了強(qiáng)大而直觀的查詢模型,可輕松檢索、過濾和操作數(shù)據(jù)庫中的數(shù)據(jù)。
  • 簡明 API:RDB 擁有簡明且便于開發(fā)人員使用的 API,可讓您使用簡單而富有表現(xiàn)力的語法與數(shù)據(jù)庫進(jìn)行交互。
  • 無需代碼生成:享受完整的智能感知,即使在表映射中,也不需要繁瑣的代碼生成。
  • 支持 TypeScript 和 JavaScript:RDB 完全支持 TypeScript 和 JavaScript,讓您可以充分利用靜態(tài)類型和現(xiàn)代 ECMAScript 功能的優(yōu)勢。
  • 可在瀏覽器中使用:通過使用 Express.js 插件,您可以在瀏覽器中安全地使用 RDB,該插件用于保護(hù)敏感的數(shù)據(jù)庫憑據(jù),避免在客戶端級別暴露。這個方法反映了傳統(tǒng)的 REST API,并使用了高級 TypeScript 工具來增強(qiáng)功能。

安裝與使用

$ npm install rdb

示例

o9D28資訊網(wǎng)——每日最新資訊28at.com

這里我們選擇 SQLite。o9D28資訊網(wǎng)——每日最新資訊28at.com

npm install sqlite3

map.js 地圖.jso9D28資訊網(wǎng)——每日最新資訊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 更新.jso9D28資訊網(wǎng)——每日最新資訊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 過濾器.jso9D28資訊網(wǎng)——每日最新資訊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 });}


o9D28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-15185-0.htmlRDB.js:適用于 Node.js 和 Typescript 的終極對象關(guān)系映射器

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 掌握Go編程中的錯誤處理和日志記錄

下一篇: Golang中的錯誤處理:全面指南及示例

標(biāo)簽:
  • 熱門焦點
  • Java NIO內(nèi)存映射文件:提高文件讀寫效率的優(yōu)秀實踐!

    Java的NIO庫提供了內(nèi)存映射文件的支持,它可以將文件映射到內(nèi)存中,從而可以更快地讀取和寫入文件數(shù)據(jù)。本文將對Java內(nèi)存映射文件進(jìn)行詳細(xì)的介紹和演示。內(nèi)存映射文件概述內(nèi)存
  • 如何通過Python線程池實現(xiàn)異步編程?

    線程池的概念和基本原理線程池是一種并發(fā)處理機(jī)制,它可以在程序啟動時創(chuàng)建一組線程,并將它們置于等待任務(wù)的狀態(tài)。當(dāng)任務(wù)到達(dá)時,線程池中的某個線程會被喚醒并執(zhí)行任務(wù),執(zhí)行完任
  • 梁柱接棒兩年,騰訊音樂闖出新路子

    文丨田靜 出品丨牛刀財經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運營,這意味著騰訊音樂長音頻業(yè)務(wù)走向消亡。騰訊在長音頻領(lǐng)域還在摸索。為
  • 中國家電海外掘金正當(dāng)時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態(tài)LT(ID:LingTai_LT)2023年,出海市場戰(zhàn)況空前,中國創(chuàng)業(yè)者在海外紛紛摩拳擦掌,以期能夠把中國的商業(yè)模式、創(chuàng)業(yè)理念、戰(zhàn)略打法輸出海外,他們依
  • 阿里瓴羊One推出背后,零售企業(yè)迎數(shù)字化新解

    作者:劉曠近年來隨著數(shù)字經(jīng)濟(jì)的高速發(fā)展,各式各樣的SaaS應(yīng)用服務(wù)更是層出不窮,但本質(zhì)上SaaS大多局限于單一業(yè)務(wù)流層面,對用戶核心關(guān)切的增長問題等則沒有提供更好的解法。在Saa
  • 自研Exynos回歸!三星Galaxy S24系列將提供Exynos和驍龍雙版本

    年初,全新的三星Galaxy S23系列發(fā)布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三個版本,全系搭載超頻版驍龍8 Gen 2,雖同樣采用臺積電4nm工藝制
  • iQOO 11S評測:行業(yè)唯一的200W標(biāo)準(zhǔn)版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強(qiáng)機(jī),該機(jī)不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • Windows 11發(fā)布,微軟一改往常對老機(jī)型開放的態(tài)度

    距離 Windows 11 發(fā)布已經(jīng)過去一周,在過去一周里,很多數(shù)碼愛好者圍繞其對 Android 應(yīng)用的支持、對老機(jī)型的升級問題展開了激烈討論。與以往不同的是,在這次大
  • 利用職權(quán)私自解除被封帳號 Meta開除20多名員工

    11月18日消息,據(jù)外媒援引知情人士表示,過去一年時間內(nèi),F(xiàn)acebook母公司Meta解雇或處罰了20多名員工以及合同工,指控這些人通過內(nèi)部系統(tǒng)以不當(dāng)方式重置用戶帳號,其
Top 主站蜘蛛池模板: 棋牌| 读书| 蓝田县| 盘锦市| 郸城县| 外汇| 都昌县| 会宁县| 宝山区| 睢宁县| 陵水| 合江县| 余江县| 平安县| 宁都县| 淳化县| 凤山县| 罗甸县| 邢台县| 长岛县| 上犹县| 梅州市| 德化县| 盐边县| 三河市| 邳州市| 桐城市| 西峡县| 瓮安县| 盘山县| 思茅市| 扎鲁特旗| 灵宝市| 揭东县| 远安县| 华池县| 敦化市| 类乌齐县| 环江| 五寨县| 云阳县|