Feathers:用 TypeScript 写 API 和实时应用的全栈框架

feathersjs/feathers 在 GitHub 上拿到 15,253 Star。

用 TypeScript 或 JavaScript 构建 Web API 和实时应用的全栈框架。后端技术随便选,数据库开箱即用,前端 React、Vue、Angular、React Native 都能对接。

正文顶部截图

1、 解决什么问题

做全栈应用有个痛点:API 层和实时通信层要分开写,数据库交互逻辑重复实现,换前端框架又得改一遍。

Feathers 把这些统一了。一套代码搞定 RESTful API 和 WebSocket 实时通信,数据库操作通过适配器层抽象出来,换数据库不用动业务逻辑。

2、 能做什么

服务层(Services):封装数据库操作,统一接口。MongoDB、PostgreSQL、MySQL 调用方式都一样,支持 CRUD 和自定义方法。

钩子系统(Hooks):在服务方法执行前后插入逻辑,处理验证、权限、数据转换。可以全局注册,也可以按服务单独配置。

实时通信:基于 Socket.io,客户端订阅事件后,数据变更自动推送。不用自己写 WebSocket 逻辑。

README区域截图

3、 上手速度

三条命令就能跑起来:

npm create feathers my-new-app
cd my-new-app
npm run dev

生成的项目自带 TypeScript 配置、测试框架、开发服务器。往里面加服务、加钩子、接数据库,文档里都有教程。

4、 适用场景

需要快速搭建后端 API 的项目,尤其是前端为主、后端做数据接口的情况。实时功能开箱即用,聊天应用、协作工具、数据监控面板这类场景都能覆盖。

TypeScript 类型定义完整,编辑器提示准确。对团队协作来说,类型约束能减少沟通成本。

5、 对比其他框架

Express 只是路由层,业务逻辑全靠自己组织。NestJS 架构完整但学习曲线陡。Feathers 在两者之间找了位置:比 Express 结构化,比 NestJS 轻量。数据库抽象层和实时通信是它的差异化优势。

Express 结构化,比 NestJS 轻量。数据库抽象层和实时通信是它的差异化优势。

更多推荐