小程序 js sdk RPC 请求回来的数据 createdAt 和 updatedAt字段为 null

麻烦贴一下云函数和客户端的代码,以及云函数 Node SDK 的版本

用的是python云函数

@posts_engine.define
def getPosts(skip=0, limit=10, orderby="createdAt", descending=True, authorId=None, circleId=None):
    query = leancloud.Query("ALPosts")
    query.limit(limit)
    query.skip(skip)
    query.include("author.avatar", "postFiles", "replyToPost")
    if descending:
        query.descending(orderby)
    else:
        query.ascending(orderby)

    if authorId is not None:
        author = leancloud.Object.extend('_User').create_without_data(authorId)
        query.equal_to('author', author)
    if circleId is not None:
        circle = leancloud.Object.extend('ALCircles').create_without_data(circleId)
        query.equal_to('circle', circle)

    try:
        posts = query.find()
        return posts
    except leancloud.LeanCloudError as e:
        return e

我看到后面你把异常忽略掉了,是否是云函数中出现了错误呢?

建议在客户端打印一下收到的响应,也可以在开发人员工具中看下原始的 HTTP 响应。

在开发工具里是有显示的
然后在 JS SDK 里打印 createdAt 和 updatedAt 就变成null了
我另外 set 了个新字段

post.set('postTime', post.get('createdAt'))

这样在 JS SDK 里是能把 post.get('postTime') 的 string 打印出来的

需要这样获取 post.createdAt,createdAt 是一个特殊属性

打印出来还是 null frowning

这样的话,还是需要你贴一下在客户端收到的 HTTP 响应

请看截图

postTime是前面说过的方法,处理成string在云引擎返回前 set 的
但是可以看到在JS SDK里 (GITHUB下的最新版的带 live query 的小程序版本) 返回的createdAt 和 updatedAt 都是 null

请求代码如下

AV.Cloud.rpc('getPosts', params).then(posts=>{
 console.log(posts[0])
})

我的意思是看下开发人员工具中 Network 选项卡,这个请求的 Response 内容。

这样可以确定是服务器端返回的数据就没有 createdAt,还是客户端在解析时丢失了 createdAt

开发人员工具具体指的是哪个...... sweat_smile

微信开发工具左侧选「调试」,然后右侧选「Network」