SeeDAO OS
  • 👋欢迎 Welcome
  • ⭐项目简介 Overview
    • 💡什么是 SeeDAO OS ?
    • 🕴️托管与客制化服务
  • 📘使用者指南 User Guide
    • ⚡快速开始
      • 安装部署
      • 环境设置
      • 疑难排解
    • ☁️SeeDAO OS API
      • Error Codes
      • Event
      • User
    • 🪄客户端 SDK (node.js)
      • User
  • 📙知识库 Knowledge Base
    • 🏗️技术架构
      • 设计哲学
      • 技术栈
      • 前端 - Vue3
        • 国际化
        • 状态管理 Vuex
        • 数据埋点 Google Analytic
      • 后端 - Express (Nodejs)
        • MRCS 架构
        • 设置管理
        • FlureeDB 交互
        • 日志管理 - pino
        • 封装 NPM 包
      • 数据库 - FlureeDB (GraphQL)
      • 链上相关操作
        • DAO 标准 - DAO*
    • 🛠️功能模块
      • 成员 User
        • 社交账户 Auth
      • 积分 Point
      • 任务 Task
        • 评价 Review
      • 提案 Proposal
        • 投票 Poll & Vote
      • 预算 Budget
        • 链上记录 Transaction
        • 资产 Asset
        • 代币 Token
      • 悬赏 Bounty
      • 公会 Guild
      • 项目 Project
      • 通知 Notification
        • 短信 ShortMessage
      • 线索 Lead
        • 渠道 Channel
      • 备份 Backup
        • 档案 File
        • 链接 Link
    • 💪第三方支持
      • SubDID (.bit)
      • IM (Sending.Me)
      • SBT (Ensoul)
      • 链上 ZK 存储 (zCloak)
    • 🕹️游戏化设计
      • NPC — 对话式副本任务
      • 技能树 — 成长路径设计
      • 叠Buff — SBT 报酬加成
    • 🔌插件开发
      • 前端 OS Widget
      • 独立插件
  • 🙋协作贡献 Collaboration
    • 🤟加入项目
    • 📋项目看板
    • 📐协作规范
      • 产权与开源条款
        • SeeDAO OS 贡献者协议 (SCA)
      • 项目激励与要求
      • 反馈回报
      • 项目推广
      • 术语词汇表
    • 🤠非技术贡献者
      • 游戏化小组
      • 自动化小组
    • 🤓技术贡献者
      • 主干开发
      • 代码规范
Powered by GitBook
On this page
  • Read-Only 操作:Query
  • Write 操作:transact
  1. 知识库 Knowledge Base
  2. 技术架构
  3. 后端 - Express (Nodejs)

FlureeDB 交互

目前 SeeDAO OS 数据库使用的是区块链数据库 FlureeDB,基本上可以视为一个图数据库。

Read-Only 操作:Query

所有任何的查询都是使用 Query 进行查询,你应该会在所有组件的 .model.ts 中看到类似如下:

// 引入 FlureeDB
import flureedb from '../../../config/flureedb';
// 引入 Query
import userQUery from './user.query';

// 常见的 Query 函数
function findUsersById(ids) {
  return new Promise((resolve, reject) => {

    // Step1 透过 Query 建立 json
    const tx = userQUery.findUsersById(ids);

    // Step2 透过 Query 指令查询
    flureedb
      .query(tx)
      .then(async (response) => {
        const body = await response.text();
        // Step3 回传字串透过 bodyParser 处理
        resolve(flureedb.bodyParser(body));
      })
      .catch((error) => {
        console.log('error:', error);
        reject(error);
      });
  });
}

Write 操作:transact

如果是要送出需要改动的操作,则是需要使用 transact 的功能,基本上与 Query 没有差别,只是呼叫的函数改为 flureedb.transact(tx) 。

Previous设置管理Next日志管理 - pino

Last updated 2 years ago

FlureeDB 的 Query 方式比较特殊,请查看 SeedDAO 文档: 了解。

📙
🏗️
第四课:基本 Query