私はチェーンコードで豊富なクエリを実行しようとしています。どのピアにもCouchDBがあり、私はmarble source codeの例に従っています。 しかし、私は何も結果(エラーなし)、空の配列を取得しません。 豊富な検索結果がありません - Hyeperledger Fabric v1.0
私はCouchDBの中に同じクエリを実行する
は直接問題はないと私は1つのまたはそれ以上の結果が得られます。これは私が使用chaincodeのソースコードです:
if len(args) == 3 && args[1] == "complex" {
fmt.Printf("Query complex\n")
if isJSON(args[2]) {
fmt.Printf("Complex query: %s\n", args[2])
resultsIterator, err := stub.GetQueryResult(args[2])
if err != nil {
jsonResp := "{\"Error\":\"Not able to make the query, see error: " + err.Error() + "\"}"
return shim.Error(jsonResp)
}
defer resultsIterator.Close()
// buffer is a JSON array containing QueryRecords
var buffer bytes.Buffer
buffer.WriteString("[")
bArrayMemberAlreadyWritten := false
for resultsIterator.HasNext() {
queryResponse, err := resultsIterator.Next()
if err != nil {
jsonResp := "{\"Error\":\"Not able to make the query, see error: " + err.Error() + "\"}"
return shim.Error(jsonResp)
}
// Add a comma before array members, suppress it for the first array member
if bArrayMemberAlreadyWritten == true {
buffer.WriteString(",")
}
buffer.WriteString("{\"Key\":")
buffer.WriteString("\"")
buffer.WriteString(queryResponse.Key)
buffer.WriteString("\"")
buffer.WriteString(", \"Record\":")
// Record is a JSON object, so we write as-is
buffer.WriteString(string(queryResponse.Value))
buffer.WriteString("}")
bArrayMemberAlreadyWritten = true
}
buffer.WriteString("]")
fmt.Printf("Query Response: %s\n", buffer.String())
return shim.Success(buffer.Bytes())
}
jsonResp := "{\"Error\":\"The query is not a valid JSON\"}"
return shim.Error(jsonResp)
}
テキストのスクリーンショットは、特に検索エンジンやスクリーンリーダーにとって非常に不愉快です。代わりにテキストをコピーして貼り付けてください。 – Flimzy
@Flimzyスクリーンショットはコード、エラー、またはファブリックのテキストではありません。すべて私のチェーンコード(最初のもの)のカスタムテキストで、2番目のものはFauxtonのクエリ結果です。私はここでスクリーンショットからテキストをコピー/過去にすると検索エンジンがより効率的になる理由はわかりません。 – AnTiToinE
私はFauxtonのスクリーンショットについて話していません。私は最初のイメージについて話しています。 – Flimzy