TieJS: 一个基于 TypeScript 的个人级 Node.js 框架

2021-05-18 11:45:47 +08:00
 forsigner

这个一个我个人开发 Node.js 框架,一个基于 TypeScript 的 Node.js 框架,底层基于 Koa 和 TypeDI,核心特性是使用依赖注入组织应用代码。

项目地址: https://github.com/forsigner/tie

为什么开发 TieJS,我刚开始用了两年多 Egg.js ,但是由于其对 TypeScript 支持过于弱(还有其他原因略过),放弃 Egg.js 了,尝试使用了一个月 NestJS,由于其概念过于多、使用繁琐等原因也放弃了,所以开发了 TieJS,前后大概开发和维护了一年多时间。

我自己是 TypeScript 和 GraphQL,并且相比 Express,我更喜欢 Koa 的中间件系统,所以开发了 TieJS,核心特性是使用依赖注入组织应用代码,还有一个就是内置 GraphQL 的支持。

Tie 意为绳子,在 TieJS 中,最核心的单元是一个个 Injectable 的模块,通过依赖注入这根绳子,你可以有序地组织一个复杂的项目。也放弃了 NestJS 引入 Node 社区所有复杂的概念。

一些特性

TypeScript, 全面拥抱 TypeScript 依赖注入,易于编写可维护、可测试的代码 基于 Koa,易于可以复用 Koa 中间件生态 开箱即用,零配置开始项目 插件体系, 易于扩展

核心技术

TieJS 使用下面这些开源技术:

这个框架因为个人原因,特性更新的比较慢,欢迎有兴趣的人一起维护和开发,如果有人有兴趣,我会把代码库转移到一个 Github 组织,并且开放开发权限,可以加我微信:ziyi-314,当然加微信普通交流也可以 哈哈

3299 次点击
所在节点    程序员
33 条回复
foranuttarachen
2021-05-18 12:11:21 +08:00
tie 有在实际的项目用到吗
tinytin
2021-05-18 12:12:27 +08:00
关注下
tinytin
2021-05-18 12:14:49 +08:00
@tinytin 为什么不直接用 nest.js 呢
chogath
2021-05-18 12:15:24 +08:00
为什么不直接用 nest.js 呢 -0-
forsigner
2021-05-18 12:21:07 +08:00
@foranuttarachen 已经在几个商业项目跑了一年多了
forsigner
2021-05-18 12:26:25 +08:00
@tinytin 最主要的是 NestJS 概念太多,太复杂,学习成本太高,降低了开发体验,对我个人而言,我只希望把 TypeScript 的 (类型安全) 和 依赖注入 (代码注入) 使用在 Node 框架中,Nest 强行把非常多 Spring 的概念和理念引入框架中,这不是我喜欢的,可能是个人品味的问题吧
forsigner
2021-05-18 12:26:42 +08:00
@chogath 同上面
soshao1188
2021-05-18 12:28:05 +08:00
egg 的 typescript 有什么问题吗?看到也是支持的
chogath
2021-05-18 12:54:14 +08:00
感觉楼主没太想明白,node.js 的 web 框架各有优劣,使用哪种框架完全取决于工程场景。 类型安全和依赖注入也不是银弹。你给我的感觉是为了用而用 ...
abersheeran
2021-05-18 12:59:31 +08:00
赞。我看看有没有好用的点可以抄的 hhh
galikeoy
2021-05-18 12:59:53 +08:00
@tinytin #2 撞头像了 我还以为我啥时候回复了呢
chogath
2021-05-18 13:03:19 +08:00
@galikeoy 哈哈 🤣
IvanLi127
2021-05-18 13:49:59 +08:00
@galikeoy
@tinytin
御坂妹妹不存在撞头像一说,个体番号不一样就不叫撞
susan0007
2021-05-18 14:12:26 +08:00
强势围观
forsigner
2021-05-18 14:31:11 +08:00
@chogath 所以你想表达我没想太明白什么?既然 [node.js 的 web 框架各有优劣,使用哪种框架完全取决于工程场景] ,你怎么得出别人创造一个东西是没使用场景的结论?
forsigner
2021-05-18 14:32:53 +08:00
@soshao1188 eggjs 很好,有一个问题是它的 typescript 支持靠工具生产 d.ts 文件来解决的,实际使用会有很多不爽的地方
ivens98
2021-05-18 15:14:10 +08:00
挺好的,但是没有大公司背书有点不敢用。
agdhole
2021-05-18 16:14:03 +08:00
这类框架不敢用的唯一原因就是怕跑路
yoa1q7y
2021-05-18 16:23:16 +08:00
看了下文档,感觉跟 nest.js 差不多,少了 Guards 、Pipes 等概念,然而你确定后面不会加上这些么
forsigner
2021-05-18 16:35:00 +08:00
@ivens98 我自己用 哈哈😆

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/777644

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX