如何使用@returns 注释 return 资产或任何变量

How to return assets or any variable using @returns annotation

我正在尝试 return 从 transaction.Here 查询结果是我的代码。

/**
* Sample transaction
* @param {org.zcon.healthcare.SearchPatient} tx
* @returns{org.zcon.healthcare.Patient[]}
* @transaction
*/
async function SearchPatient(tx){
let queryString = `SELECT org.zcon.healthcare.Patient WHERE (`;
let conditions = [];
if (tx.hasOwnProperty('firstName')) {
    var firstName =tx.firstName;
    conditions.push(`(firstName == "${firstName}")`)
};
if (tx.hasOwnProperty('lastName')) {
    var lastName = tx.lastName;
    conditions.push(`(lastName == "${lastName}")`)
};
if (tx.hasOwnProperty('gender')) {
    var gender = tx.gender;
    conditions.push(`(gender == "${gender}")`)
};
if (tx.hasOwnProperty('birthDate')) {
    var dob =tx.birthDate;
    conditions.push(`(birthDate == "${dob}")`)
};
if (tx.hasOwnProperty('ssn')) {
    var ssn=tx.ssn;
    conditions.push(`(ssn == "${ssn}")`)
};
if (tx.hasOwnProperty('medicalRecordNumber')) {
    var mrn = tx.medicalRecordNumber;
    conditions.push(`(medicalRecordNumber == "${mrn}")`)
};
queryString += conditions.join(' AND ') + ')';
console.log(queryString);
let finalQuery =  buildQuery(queryString);
console.log(finalQuery);
const searchPatient = await query(finalQuery);
if(searchPatient.length ==0){
    throw "No Patient Records found!!"
}else
  return searchPatient;   
}

但它不会 return 数组,除了交易详情。我需要更改 return 类型吗?或者我还缺少其他东西?

正如穆罕默德所指出的,这是一个查询交易;您需要定义 return 类型。还要定义提交类型 - 如

@commit(false) 
@returns(Patient[]) 

transaction SearchPatient { 
<txn definition here> 
} 

在您的模型 (.cto) 文件中。

这里全部记录(带示例)-> https://hyperledger.github.io/composer/latest/reference/js_scripts