📜  adonis 版本 - Javascript (1)

📅  最后修改于: 2023-12-03 15:29:18.312000             🧑  作者: Mango

Adonis版本 - Javascript

Adonis是一个基于Node.js的MVC框架。它使用了ES6+语法和有用的Node.js生态系统来帮助你构建快速、可扩展和安全的Web应用程序。

主要特性
  • 基于最新的Javascript标准开发,使用ES6+语法。
  • 提供了ORM和查询构建器,使用它来处理数据库交互,轻松地进行CRUD操作。
  • 内置身份验证、登录、注册、访问控制等等。轻松地为你的应用程序添加安全功能。
  • 提供了Websocket的支持,轻松地构建实时应用程序。
  • 可扩展:Adonis完全支持Node.js生态系统中的模块和组件,你可以使用第三方模块来扩展应用程序的功能。
安装

你可以使用npm来安装Adonis:

npm install -g @adonisjs/cli
创建新的应用程序

如果你已经安装了adonis-cli,使用如下命令可以创建一个新的Adonis应用程序:

adonis new <app-name>

上述命令将创建一个新的Adonis应用程序,并安装所有必需和推荐的依赖项。

运行应用程序

在应用程序目录中,使用下面的命令来启动应用程序:

adonis serve --dev

该命令将启动一个Web服务器并监听8000端口。你可以在浏览器中输入https://localhost:8000来访问应用程序。

ORM和查询构建器

Adonis提供了强大的ORM和查询构建器,使得处理数据库交互变得非常简单。

Model

Model是一个Adonis中的概念,它代表一个数据库表的抽象。在Adonis中,你可以轻松地创建一个Model,并使用它来进行数据库操作。

首先我们需要创建一个新的Model:

adonis make:model User

上述命令将在app/Models目录下创建一个名为User.js的文件,在其中我们可以定义我们要在数据库中使用的属性和方法。

'use strict'

/** @type {typeof import('@adonisjs/lucid/src/Lucid/Model')} */
const Model = use('Model')

class User extends Model {
}

module.exports = User

接着,我们可以使用该Model进行CRUD操作:

const User = use('App/Models/User')

// 插入一个新的用户
const newUser = new User()
newUser.username = 'john'
newUser.email = 'john@example.com'
await newUser.save()

// 查找所有用户
const users = await User.all()

// 根据ID查找用户
const user = await User.find(1)

// 更新用户信息
user.username = 'jane'
await user.save()

// 删除一个用户
await user.delete()

Adonis还提供了查询构建器,可以帮助你轻松地构造各种查询。例如,我们可以使用以下代码来查找名为"john"的所有用户:

const users = await User.query()
  .where('username', 'john')
  .fetch()
身份验证

Adonis内置了身份验证和访问控制系统,可以轻松地为应用程序添加登录、注销、注册和权限管理的功能。

登录与注销

Adonis提供了可用于控制器、路由和视图的许多身份验证相关的方法,例如login和logout。

在控制器中,我们可以使用以下代码:

async login ({ auth, request, response }) {
  const { email, password } = request.all()
  await auth.attempt(email, password)
  return response.redirect('/')
}

async logout ({ auth, response }) {
  await auth.logout()
  return response.redirect('/')
}

登录验证成功后,Adonis会为你保存一个cookie,你可以在后续的请求中使用该cookie进行身份验证。

注册

要添加注册功能,我们需要编写一个注册表单,以及路由和控制器来处理表单数据。

例如,我们可以使用以下代码来处理注册表单:

async register ({ auth, request, response }) {
  const { email, password } = request.all()
  const user = await User.create({ email, password })
  await auth.login(user)
  return response.redirect('/')
}
总结

Adonis是一个功能齐全、高性能的Node.js MVC框架,它提供了ORM、身份验证、Websocket等许多功能,使得构建Web应用变得非常简单。如果你需要快速构建一个Node.js应用程序,尝试Adonis吧!