刚接触 ES2016 不久,由于对于 async/ await 充满兴趣, 就脱离 express 的怀抱,转投 koa 的怀抱了。 在学习的过程中,感觉反复的手动注册令人不舒服,就试着将几种功能的注册分离了出来。 现在试着实现了下面的一些功能:
项目地址: https://github.com/a632079/teng-koa
在学习的过程中,为了集成框架的一些需求,搬了一些知名扩展的一些代码。 小萌新一个,还望大牛指点一下意见。
1
ctsed 2018-01-30 01:10:01 +08:00 via Android
demo 呢,文档也没有
|
3
thundernet8 2018-01-30 09:58:49 +08:00 via Android
建议楼主上 TypeScript,静态类型对你这种很有益处
|
4
thundernet8 2018-01-30 09:59:12 +08:00 via Android
我指的是这个项目
|
5
a632079 OP @thundernet8 十分感谢。 正在准备学习。
不过还是想先咨询一下,coffeescript 和 typescript 哪个更适合先学习呢? |
6
raphaelsoul 2018-01-30 14:35:30 +08:00
@a632079 coffeescript 算是死了。特性也已经被 es 官方吸收。至于 ts,不好说,也许哪天 es 也会实现严格类型
|
7
thundernet8 2018-01-30 17:41:47 +08:00
@a632079 coffeescript 本来就是个不彻底的方案,通过在 JS 中添加辅助方法使得编码非常繁琐,而 TypeScript 以新语言(实际只是个 JS 超集)的方式来实现静态类型,接口,而其他大多数 API 是与 ES6 一致的,现在 es 对严格类型的推进没有太强的意愿,因此学习 ts 是绝对没错的,即使说 es 吸收了 ts 的这些,那也只是写代码不用 ts 后缀名而已
|
8
thundernet8 2018-01-30 17:54:29 +08:00 1
@a632079 用了 TypeScript 在你这个项目上,你可以使用 https://www.typescriptlang.org/docs/handbook/decorators.html 装饰器实现路由注解于控制器下对应路由方法之上,再更进一步,你可以利用元数据反射,例如 https://github.com/rbuckton/reflect-metadata 这个库在 app 启动时扫描所有 controller 的包含的路由和路由方法,自动注册路由到 koa app,而不是全部集中手写到一个 routes 文件里面,灵活性更好
|
9
a632079 OP @thundernet8 十分感谢。 眼界又被进一步打开了
|
10
a632079 OP @raphaelsoul :D 准备开始尝试 typescript 了。
话说 经常看到有评论指 Bluebird 的 Promise 较原生的 Promise 性能更好。甚至有报告指出,如 koa 直接将 global.promise 替换为 bluebird 可以提高 1 倍的 qps。这是为什么呢?为什么会有原生的差距如此之大。 |
11
raphaelsoul 2018-02-01 15:59:46 +08:00
@a632079 没有测试数据都是耍流氓
|