AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

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

來源: 責編: 時間:2023-10-26 17:10:28 244觀看
導讀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 都能滿足您的需求。xov28資訊網——每日最新資訊28at.com

RDB.js:https://rdbjs.org/xov28資訊網——每日最新資訊28at.com

關鍵特性

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

安裝與使用

$ npm install rdb

示例

xov28資訊網——每日最新資訊28at.com

這里我們選擇 SQLite。xov28資訊網——每日最新資訊28at.com

npm install sqlite3

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


xov28資訊網——每日最新資訊28at.com

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

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

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

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

標簽:
  • 熱門焦點
Top