介绍

介绍

AdonisJS 是什么?

AdonisJS 是一个以 TypeScript 优先的 Node.js Web 框架。你可以使用它来创建全栈 Web 应用程序或 JSON API 服务器。

在基础层面,AdonisJS 为你的应用程序提供结构,配置了一个无缝的 TypeScript 开发环境,为你的后端代码配置了热模块替换(HMR),并提供了一个庞大且维护良好、文档详尽的包集合。

我们设想,使用 AdonisJS 的团队将花费更少的时间在琐碎的决定上,比如为每个小功能精挑细选 npm 包、编写粘合代码、争论完美的文件夹结构,而将更多的时间投入到实现满足业务需求的实际功能上。

前端无关

AdonisJS 专注于后端,并允许你选择自己喜欢的前端技术栈。

如果你喜欢保持简洁,可以将 AdonisJS传统模板引擎结合使用,在服务器上生成静态 HTML,为你的前端 Vue/React 应用创建一个 JSON API,或者使用 Inertia 让你喜欢的前端框架完美协同工作。

AdonisJS 旨在为你提供一套完整的工具,让你能够从头开始创建一个强大的后端应用。无论是发送电子邮件、验证用户输入、执行 CRUD 操作,还是用户身份验证,我们都已为你妥善处理。

现代和类型安全

AdonisJS 建立在现代 JavaScript 基础之上。我们使用 ES 模块、Node.js 子路径导入别名、SWC 来执行 TypeScript 源码,以及 Vite 来打包资源。

此外,在设计框架的 API 时,TypeScript 扮演了举足轻重的角色。例如,AdonisJS 具有:

拥抱 MVC

AdonisJS 采用了经典的 MVC 设计模式。你首先使用功能性 JavaScript API 定义路由,将控制器绑定到这些路由上,并在控制器内编写处理 HTTP 请求的逻辑。

start/routes.ts
import router from '@adonisjs/core/services/router'
const PostsController = () => import('#controllers/posts_controller')
router.get('posts', [PostsController, 'index'])

控制器可以使用模型从数据库中获取数据,并呈现一个视图(也称为模板)作为响应。

app/controllers/posts_controller.ts
import Post from '#models/post'
import type { HttpContext } from '@adonisjs/core/http'
export default class PostsController {
async index({ view }: HttpContext) {
const posts = await Post.all()
return view.render('pages/posts/list', { posts })
}
}

如果你正在构建 API 服务器,你可以用 JSON 响应来替换视图层。但是,处理和响应 HTTP 请求的流程保持不变。

app/controllers/posts_controller.ts
import Post from '#models/post'
import type { HttpContext } from '@adonisjs/core/http'
export default class PostsController {
async index({ view }: HttpContext) {
const posts = await Post.all()
return view.render('pages/posts/list', { posts })
/**
* Posts array will be serialized to JSON
* automatically.
*/
return posts
}
}

指南设想

AdonisJS 的文档被编写为参考指南,涵盖了由核心团队维护的多个包和模块的使用方法和 API。

**本指南不会教你如何从头开始构建一个应用程序。**如果你正在寻找教程,我们建议你从 Adocasts 开始学习之旅。Tom(Adocasts 的创始人)制作了一些高质量的视频,帮助你迈出使用 AdonisJS 的第一步。

话虽如此,该文档仍广泛涵盖了现有模块的使用方法和框架的内部工作原理。

最近发布

以下是最近发布的版本列表。点击这里查看所有发布版本。

Package Change Released on
@adonisjs/core Add support for dd and dump helpers. Sep 21, 2024
@adonisjs/hash Fix parameters order of Argon2 hash. Sep 20, 2024
@adonisjs/core Keep APP_KEY as an empty value within the .env.example file. Sep 11, 2024
@adonisjs/presets Generate SilentAuth middleware. Sep 11, 2024
@adonisjs/core Use Ace Kernel errorHandler when running commands. Sep 5, 2024

更多资源

赞助商