Releases: leancloud/javascript-sdk
v3.0.1
v3.0.0
Highlights
- LiveQuery:通过订阅一个
Query
,在其结果发生变动时实时得到通知。详见 《LiveQuery 开发指南》。 - 新的序列化反序列化方法:针对
AV.Object
重新设计了#toJSON
方法,并提供了一对可靠的序列化反序列化方法。 AV.request
方法:公开了低抽象级别的AV.request
方法,方便开发者直接调用 LeanCloud Rest API。
Breaking Changes
-
重新设计了
AV.Object
序列化相关的方法:- 如果需要将
AV.Object
中的有效信息转换成 JSON Object,请使用AV.Object#toJSON
方法。请注意通过此方法得到的 JSON 不包含对象的元信息,因此是不可逆的(无法转换回AV.Object
)。 - 如果需要「存储」或「传输」
AV.Object
,请使用新增的AV.Object#toFullJSON
(序列化)与AV.parseJSON
(反序列化)方法。
新版中的
AV.Object#toJSON
相比于 v2 有以下区别:-
如果对象某个字段类型是 Pointer,并且有内容(included),新版中会递归地输出这个字段的有效信息(旧版中会输出一个 Pointer 结构)
new AV.Query('Child').include('father').first() .then(child => child.toJSON().father) .then(console.log); /* v3: { objectId: "58a461118d6d8100580a0c54", name: "John Doe", createdAt: "2017-02-15T14:08:39.892Z", updatedAt: "2017-02-16T10:49:00.176Z" } v2: { objectId: "58a461118d6d8100580a0c54", __type: "Pointer", className: "Parent", }
-
如果字段的类型是
Date
,新版中会输出该时间的 UTC 格式字符串(旧版中会输出一个 Date 结构)const child = new Child().set('birthday', new Data()); console.log(child.toJSON().birthday); /* v3: "2011-11-11T03:11:11.000Z" v2: { __type: "Date", iso: "2011-11-11T03:11:11.000Z" }
更多背景与技术细节请参考 #453。
- 如果需要将
-
为了更好的隔离服务,我们为每个应用提供了独立的域名。对于小程序用户,请前往 《小程序域名白名单配置》 更新域名白名单。
-
创建
Role
时acl
参数不再是可选的。在 v2 中,如果不指定,SDK 会自动为其设置一个 public read-only 的默认 acl,在新版中必须显式的指定。// 之前的用法 new AV.Role('admin'); // 新版中等价于 var acl = new AV.ACL(); acl.setPublicReadAccess(true); new AC.Role('admin', acl);
Features
-
LiveQuery 功能允许开发者订阅一个
Query
,在Query
的结果发生变动时实时得到通知。- 增加了
Query#subscribe
方法,返回该Query
对应的LiveQuery
实例; - 增加了
LiveQuery
类,在Query
结果变化时 SDK 会在LiveQuery
实例上派发create
、update
、enter
、leave
、delete
等事件。
- 增加了
-
开放了低抽象级别的
AV.request
方法,方便开发者直接调用 LeanCloud Rest API。 -
增加了
AV.setServerURLs
方法,允许单独配置云函数等服务的域名以进行本地调试。AV.setServerURLs({ engine: 'http://localhost:3000', });
-
支持在 Node.js 中通过 Stream 构建
AV.File
(仅支持中国节点)。const fs = require('fs'); const readStream = fs.createReadStream('sample.txt'); const file = new AV.File('filename', readStream);
Bug Fixes
- 修复了在中国节点 Node.js 中上传文件会阻塞当前线程的问题。
v3.0.0-beta.3
Features
- LiveQuery
Miscellanies
- 包含了 v2.3.0-v2.4.0 的新特性与修复。
v2.5.0
v2.4.0
v2.3.2
v2.3.0
v3.0.0-beta.2
Breaking Changes
-
为了更好的隔离服务,我们为每个应用提供了独立的域名。对于小程序用户,请前往 《小程序域名白名单配置》 更新域名白名单。
-
创建
Role
时acl
参数不再是可选的。在 v2 中,如果不指定,SDK 会自动为其设置一个 public read-only 的默认 acl,在新版中必须显式的指定。// 之前的用法 new AV.Role('admin'); // 新版中等价于 var acl = new AV.ACL(); acl.setPublicReadAccess(true); new AC.Role('admin', acl);
Features
-
开放了低抽象级别的
AV.request
方法 -
增加了
AV.setServerURLs
方法,允许单独配置云函数的域名AV.setServerURLs({ engine: 'http://localhost:3000', });
Miscellanies
- 包含了 v2.1.3-v2.2.1 的新特性与修复。
v2.2.1
v2.2.0
Bug Fixes
- 修复了 Safari 隐身模式下用户无法登录的问题
Features
- 短信支持图形验证码(需要在控制台应用选项「启用短信图形验证码」)
- 新增
Cloud.requestCaptcha
与Cloud.verifyCaptcha
方法请求、校验图形验证码。 Cloud.requestSmsCode
,User.requestLoginSmsCode
,User.requestMobilePhoneVerify
与User.requestPasswordResetBySmsCode
方法增加了authOptions.validateToken
参数。没有提供有效的 validateToken 的请求会被拒绝。
- 新增
- 支持客户端查询 ACL(需要在控制台应用选项启用「查询时返回值包括 ACL」)
- 增加
Query#includeACL
方法。 Object#fetch
与File#fetch
方法增加了fetchOptions.includeACL
参数。
- 增加