Skip to content

Commit 89d8aab

Browse files
committed
🔨 Use promise internally; verify hook key
1 parent c614b9b commit 89d8aab

10 files changed

Lines changed: 259 additions & 583 deletions

File tree

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
- **不兼容改动** 移除基于 [domain](https://nodejs.org/api/domain.html) 的异常处理,开发者需要自行捕捉云函数异步代码中的异常。
1111
- **不兼容改动** `AV.Cloud.run` 不再支持 Backbone 风格的回调(`success``error`)、在运行失败时不再向标准输出打印日志,请从返回的 Promise 中获取错误。
1212
- **不兼容改动** `AV.Insight.on` 注册的回调函数改为只接受一个 `result` 参数(去掉了 err 参数,请从 `result.status` 判断成功或失败)。
13+
- **不兼容改动** 一些错误提示被调整过,如果你依赖于对错误信息进行字符串匹配,请注意测试你的错误处理逻辑。
1314
- 新增 TypeScript 类型定义文件,位于 `leanengine.d.ts`
1415

1516
**新增云函数、Class Hook 和 User Hook 的 Promise 模式**,会使用 Promise 的值作为响应内容。如果在 Promise 中抛了使用新增的 `AV.Cloud.Error` 构造的异常则作为错误返回给客户端,`AV.Cloud.Error` 的第二个参数可以指定 HTTP Status Code 和 Error Code(`AV.Cloud.Error('posts is empty', {status: 422, code: 422})`);如果抛出了其他错误类型则视作服务器端错误,返回 500 响应并打印错误到标准输出。
@@ -26,6 +27,8 @@ AV.Cloud.define(function(request) {
2627
});
2728
```
2829

30+
对于原本不需要响应的 after 类 Hook(还包括 onVerified),现在也会按照同样的方式等待 Promise 完成再发送响应、结束链接,如果你希望收到请求后立刻结束链接,请不要在这类 Hook 中返回 Promise(或提前返回一个已经 resolve 的 Promise)。
31+
2932
如果传入 `AV.Cloud.define` 的函数有两个参数(`request``response`)则继续兼容原定义方式,需要使用 `response.success()` 发送响应。我们会继续兼容这种用法到下一个大版本,希望开发者尽快迁移到 Promise 风格的云函数上。
3033

3134
**新增了 LeanCloudHeaders 中间件**,用于在 Express 或 Koa 应用中解析 `X-LC` 开头的头,获取 Session Token 等信息:

lib/cloud.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,6 @@ Cloud.Error = class CloudError extends Error {
126126

127127
extra = extra || {}
128128

129-
Error.captureStackTrace(this, this.constructor)
130-
131129
if (!extra.status) {
132130
extra.status = 400;
133131
}
@@ -136,6 +134,8 @@ Cloud.Error = class CloudError extends Error {
136134
name: 'CloudError',
137135
message: message
138136
}, extra)
137+
138+
Error.captureStackTrace(this, this.constructor)
139139
}
140140
}
141141

0 commit comments

Comments
 (0)