今天跟大家聊聊我最近折腾的“阿多尼斯”,别想歪,不是古希腊美男子,是一个*框架!
话说最近想搞个新项目,后端技术选型的时候,看不少框架,什么Express、Koa啥的,都挺成熟,但总感觉少点什么。后来无意中发现阿多尼斯(AdonisJS),第一眼就被它的“全家桶”特性吸引,啥都有,感觉很省事。
二话不说,上手!
按照官网教程,我屁颠屁颠地装好AdonisJS。`npm init adonis-ts-app@latest hello-adonis`,一条命令下去,项目就创建好。不得不说,这初始化流程真丝滑,比我自己搭环境快多。
我开始研究它的目录结构。controller、model、migration、route,分得挺清楚,看着就舒服。之前用Express的时候,自己瞎JB建文件夹,时间长都忘哪个文件放哪儿。
然后,我开始尝试写个简单的API接口。先定义一个Model,操作数据库。AdonisJS用的是Lucid ORM,写起来挺方便的,跟Laravel的Eloquent有点像。定义好Model,然后用migration创建数据库表。
创建Controller处理请求。AdonisJS的路由也很简洁,直接在`*`里定义,`*('/users', '*')`,搞定!
写完代码,跑起来试试。`node ace serve --watch`,命令一敲,服务就启动。用Postman发个请求,数据成功返回!当时那个激动,感觉自己又行!
但是,好景不长。
在搞权限验证的时候,我遇到坑。AdonisJS自带的Auth模块,配置起来有点复杂,文档也没说清楚。我折腾好久,各种报错,各种查资料,还是没搞定。
没办法,只能自己写中间件来实现权限验证。虽然麻烦点,但好歹解决问题。
还有就是,AdonisJS的生态没有Express那么丰富,很多第三方库都没有。有些功能需要自己造轮子,比较费时间。
不过这回用AdonisJS的体验还是不错的。它的“全家桶”特性确实很省事,开发效率挺高的。而且它的代码风格很规范,强制你按照一定的结构来组织代码,对于大型项目来说,很有好处。
AdonisJS适合快速开发中小型项目。
它的“全家桶”特性很省事,但也要注意有些模块可能不太完善。
它的生态没有Express那么丰富,有些功能需要自己实现。
如果你喜欢规范的代码风格,可以试试AdonisJS。
下次有机会,我再跟大家分享一下我在AdonisJS项目中遇到的其他坑和解决方法。希望对大家有所帮助!

还没有评论,来说两句吧...