2

我正在使用 Node.js API 应用程序来处理 BigchainDB 资产。

问题 1:检索模型的所有资产

问题 2:附加(“更新”)现有资产

系统:Node.js v8.11.2,npm v5.6.0,节点模块“express”v4.16.3,节点模块“babel-register”v6.26.0,节点模块bigchaindb-orm v.2.0.0

创建资产/检索单个资产

我在我的 BigchainDB 测试帐户 ( https://test.bigchaindb.com/ )中设置了一个应用程序。创建资产,使用 BigchainDB ORM Javascript 驱动没有问题:

exports.create_an_entry = function(req, res) {
    bdbOrm.models.myModel
        .create({
            keypair: aliceKeypair,
            data: {
                city: req.body.city,
                Created_data: new Date().toString(),
            }
        })
        .then(asset => {
            res.json(asset)
        });
}

检索特定资产的信息也没有问题:

exports.read_an_entry = function(req, res) {
  bdbOrm.models.myModel
    .retrieve(req.params.assetId)
    .then(assets => {
        res.json(assets)
    })
}

问题1:

使用模型名称“myModel”并检索所有资产会导致错误消息

{ 消息:'HTTP 错误:请求的页面不可访问',状态:'429 Too Many Requests',requestURI:' https://test.bigchaindb.com/api/v1/transactions?asset_id= ' }

exports.list_all_data = function(req, res) {
    bdbOrm.models.myModel
        .retrieve()
        .then(assets => {
            res.json(assets)
        })
}

首先,检索到的资产比我创建的要多得多。其次,当我浏览 requestURI 时,有些资产的数据我从未创建过(例如,“name”:“Robin”、“email”:“test@test.no”)当我将模型名称更改为“testung”时我只收到我在这个模型名称下创建的资产。

模型名称是否必须是唯一的,甚至跨应用程序?

问题2:

在“追加”操作示例中,在同一步骤中创建了一个资产,然后将新数据追加到此。按照示例,我在“transactionHistory”中得到一个具有唯一 ID 和两个操作的资产作为输出。一个使用初始数据的 CREATE 操作和一个使用新数据的 TRANSFER 操作。

但我想要的是将更改/新数据附加到已创建的资产中。例如,创建了一项资产,其中一辆汽车的价格为 10.000 美元。一段时间后,车主决定,这辆车的价格应该是 9.000 美元。以下代码将不起作用:

exports.update_an_entry = function(req, res) {
    bdbOrm.models.myModel
       .retrieve(req.params.assetId)
       .then(asset => {
           return asset.append({
               toPublicKey: aliceKeypair.publicKey,
               keypair: aliceKeypair,
               data: {
                   price: req.params.price,
               }
           })
       })
       .then(updatedAsset => {
           res.json(updatedAsset)
       })
}

我做错了什么还是我从根本上理解 BigchainDB 的概念是错误的?

顺便提一句。CRAB 教程不起作用,它以“400 BAD REQUEST”状态响应:https ://tutorials.bigchaindb.com/crab/

4

0 回答 0