0
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 输入意外结束。为什么?我正在尝试使用上面的代码更新 couchDb 中现有的键值对。

4

1 回答 1

1

此错误发生在这一行:

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

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

调试提示:使用调试器语句检查错误行之前的变量,只需console.log(carAsBytes.toString())在它之前添加一个。

于 2019-03-03T19:19:51.530 回答