Backendless 从 API 服务返回数据库对象的规则是什么

What are Backendless's rules for returning database objects from API Services

我设置了一个简单的 Backendless API 服务并通过 CodeRunner 运行 它。作为测试,我只是从数据库中获取一条记录并 returning 它。我已经尝试了我能想到的 class 注释中 return 类型定义的所有组合,并且我确信正确的记录存在并且正在 returned 到服务,但我从未使用控制台或通过 SDK 调用成功获得 return 记录。在每种情况下,调用的主体 return 都是空的。我当前的测试使用“对象”作为 getSchedule 调用的 return 类型 - 数据库对象不是对象吗?

这是整个服务:

'use strict';

const { DateTime } = require("luxon");
const util = require("util");

class Scheduling {
     /**
      * 
      * @param {String} day 
      * @returns {Object}
      */
     getSchedule( day ) {
         let t = DateTime.fromISO(day).toMillis();
         let q = Backendless.DataQueryBuilder.create().setWhereClause(`day = ${t}`);

         Backendless.Data.of("schedules").find(q)
         .then(rec => {
             console.log(util.inspect(rec,3))
             if (rec.length === 1) {
                 return rec[0]
             }
             else {
               return {error: 404, msg: 'not found'}
             }
         })
     }
  }
  Backendless.ServerCode.addService( Scheduling )

“检查”调用表明我正在检索正确的记录。没有错误,调用的 return 状态始终为 200。显然,我遗漏了一些关于 API 服务 return 类型的信息,请指出正确的方向。

问题是 find 方法的响应在 getSchedule 调用完成后返回(因为 API 调用是异步的)。

async 声明 getSchedule,然后为 API 调用声明 await 怎么样?

'use strict';

const { DateTime } = require("luxon");
const util = require("util");

class Scheduling {
     /**
      * 
      * @param {String} day 
      * @returns {Object}
      */
     async getSchedule( day ) {
         let t = DateTime.fromISO(day).toMillis();
         let q = Backendless.DataQueryBuilder.create().setWhereClause(`day = ${t}`);

         var rec = await Backendless.Data.of("schedules").find(q);
         
         console.log(util.inspect(rec,3))
         if (rec.length === 1) {
            return rec[0]
         }
         else {
            return {error: 404, msg: 'not found'}
         }
     }
  }
  Backendless.ServerCode.addService( Scheduling )