node.js - JSON 输入意外结束 - 使用 putState() 时的 Hyperledger Fabric
问题描述
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 中现有的键值对。
解决方案
此错误发生在这一行:
const car = JSON.parse(carAsBytes.toString());
这是因为它carAsBytes.toString()
不会评估为格式正确的 JSON 字符串。您显示的代码看起来不错,但错误来自代码中的其他地方。
调试提示:使用调试器语句检查错误行之前的变量,只需console.log(carAsBytes.toString())
在它之前添加一个。
推荐阅读
- angular - Angular Dropdown menu- reactive formatted page
- audio - 从浮动音频值中检测静音
- php - PHP 发件人电子邮件地址作为电子邮件标题
- azure-functions - App_Data 文件夹的 Azure Functions 等效项
- django-rest-framework - Django 1.11.15 和查询字符串参数
- eclipse - 为什么我的 bpmn xml 文件不能在 Eclipse BPMN2 Modeler 中正确显示?
- scala - Avro 通用记录未考虑别名
- javascript - 当用户尝试移出角度 6 中的任何组件时如何提示用户
- javascript - Angular 5子组件公开属性但不公开方法
- accessibility - 让屏幕阅读器说按钮 alt-attribute 而不是 innerText