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参数。
- 增加