JSON输入意外结束-使用putState()时使用Hyperledger Fabric

时间:2019-03-03 12:47:49

标签: node.js json hyperledger-fabric hyperledger-chaincode

async changeCarOwner(ctx, carNumber, newOwner) {

        const carAsBytes = await ctx.stub.getState(carNumber); 
        if (!carAsBytes || carAsBytes.length === 0) {
            throw new Error(`${carNumber} does not exist`);
        }
        const car = JSON.parse(carAsBytes.toString());
        car.owner = newOwner

        await ctx.stub.putState(carNumber, Buffer.from(JSON.stringify(car)));

    }

}

我不断收到错误消息:JSON输入意外结束。为什么?我正在尝试使用上述代码更新ouchDb中的现有键值对。

1 个答案:

答案 0 :(得分:1)

此错误发生在此行:

const car = JSON.parse(carAsBytes.toString());

这是由于carAsBytes.toString()无法评估为格式正确的JSON字符串。您显示的代码看起来不错,但是错误来自代码中的其他地方。

调试提示:使用debugger statement检查错误行之前的变量,只需在其前面添加一个console.log(carAsBytes.toString())