无法在Hyperledger Composer

时间:2018-04-10 12:08:24

标签: hyperledger-fabric hyperledger-composer

我正在尝试创建一个业务网络,通过从URL(https://random-number-api.mybluemix.net/random)请求一个随机数来演示不确定行为。

但是,当我从中调用事务时,会出现以下错误:

  

TypeError:request.get不是函数

在文档(https://hyperledger.github.io/composer/latest/integrating/call-out)中,提到请求是全局的,可以直接使用。

测试网址

  

curl -X GET https://random-number-api.mybluemix.net/random

我正在使用Composer 0.18.2。

以下是代码。整个业务网络定义可在此处找到:https://github.com/caveman7/nondeterministic

async function createStock(request) {
    const factory = getFactory();
    const namespace = 'org.nondeterministic';

    const stock = factory.newResource(namespace, 'Stock', request.stockId);
    const priceAsStr = await request.get({uri: 'https://random-number-api.mybluemix.net/random'});
    stock.price = parseInt(priceAsStr);
    //stock.price = getPrice();
    console.log('@debug - Stock Price Generated is: USD' + stock.price);
    const ar = await getAssetRegistry(namespace + '.Stock')
    await ar.add(stock);
}

const getPrice = () => {
  const price = Math.floor((Math.random() * 10000) + 1);
  return price;
}

1 个答案:

答案 0 :(得分:1)

可能是因为您提供request作为TP的对象。如上所示或https://github.com/caveman7/nondeterministic/blob/master/lib/script.js#L22

错误,因为它不是'得到了一个名为get的方法?它应该是async function createStock(createStock )以匹配事务装饰器中的参数名称(从上面的链接跟踪github脚本文件) - 然后你应该能够像你期望的那样访问request.get()(从{{ 1}}进入了0.18.1 IIRC)。