AdonisJs是一款专业的Web框架软件。编程人员都在使用的Web框架AdonisJs。您可以通过此框架快速设计新应用程序,以帮助用户快速开发新软件。该软件需要使用Node.js要使用,将Node.js配置为软件,您可以开始创建项目,可以直接创建API服务器,您可以创建一个新的Web程序,结合软件提供的路线,控制器,视图和模板,表单提交,文件上传,中间件,例外处理等可以快速构建应用程序功能模块和数据通信方法,以帮助公司构建办公室。需求Web应用程序; adonisjs函数,每个人都可以通过这个软件快速部署网站函数,快速构建HTTP请求方案,如果您需要设计一个Web程序!
软件功能:
路由器
donisjs附带一个最快的HTTP路由器,而不会影响其功能集。已经介绍了路由,子域和丰富的资源路由等函数。
表格验证者
作为类型的类型标注,adonisjs披露了在请求主体上定义运行时验证的API,并且仍然提取静态类型信息。模板引擎
在SPA时代,有时服务器呈现的应用非常有趣。模板引擎(EDGE)具有构建动态网页所需的所有功能。
json semencer.
adonisjs是JSON:API具有一流支持的唯一节点。如果您的团队决定使用JSON:API,则可以将其添加到后端几分钟。
SQL是首选
adonisjs是将SQL作为一流公民的少数节点.JS框架之一。我们支持所有主流SQL服务器,例如PostgreSQL,MySQL,MSSQL,MariaDB等。
活动记录orm.
由Rails和Laravel启发,Adonisjs随着主动记录ORM的实施而来。 ORM为运行复杂的SQL查询和管理关系提供了丰富的API。
移动
adonisjs拥有对数据库迁移的内置支持。随着应用程序的开发,您可以使用JavaScript代码创建和更改数据库模式。
种子和工厂
不再需要与队友共享SQL转储。但使用数据库播种器快速填补数据库的虚拟数据。
多驱动程序身份验证
对于所有应用程序没有合适的身份验证过程,因此adonisjs允许您在会话中选择,不透明令牌和基本身份验证。
内置RBAC
在框架中植入基于角色的访问控制,为您提供用于实现整个应用程序的细粒度API。
CSRF保护
该框架内置于跨站点请求伪造(CSRF)保护中,以确保您的申请来自事故的影响。
净盾
Adonisjs的保护包具有保护措施,可以保护您的应用程序免受XSS的常见攻击,ClickJacking,Script注入。
启用CORS.
使用adonisjs,您可以管理跨源HTTP请求的安全设置,以确保仅通过应用程序传递授权和有效的请求。
健康检查
在容器和安排年龄,健康检查在有效的管理资源中起着重要作用。 Adonisjs附带内置的健康检查。
统一探险家
具有嵌入式资源管理器(具有最小开销)的帧可以执行应用程序的不同区域,并发现潜在的瓶颈
软件特色:
1,周到和强大的SQL ORM。它配有查询构建器,迁移和活动录制模型。
2,最先进的HTTP路由器之一,具有以下功能:路由组,子域,模式匹配,以及丰富的资源路由。
3.提供在运行时运行的类型信息和形式有效。无需请求主体维护用于HTTP的单独接口。
4.内置健康检查模块可与诸如Kubernetes等配合图一起使用。
5,Web安全的焦点。我们保护我们的网站免受许多常见的网络攻击。
官方教程:
中间件
中间件是在HTTP请求到达路由过程之前执行的一系列函数。使用中间件,您可以执行不同的操作,例如:
证中间件检查用户是否已登录。如果没有,请在达到请求之前取消请求。
用查找用户从IP地址找到的国家/地区的中间件,然后将其传递给控制器。
记录HTTP请求的中间件。
或者中间件转换响应机构。
中间件流程
中间件在每个新的HTTP请求上执行。
它们按左右向右执行。
如果中间件决定中止请求,则不会执行所有其他中间件和路由处理程序。
全球中间件
中间件以与注册相同的HTTP请求中的每个HTTP请求执行。为操作成为Perfo创建一个全球中间件
每请求都浏览。
在没有注册路由的情况下,adonisjs在请求的情况下不会执行全球中间件。这意味着如果您创建了全局中间件并请求不存在的路由,则中间件将永远不会执行。
为了演示,让我们创建一个中间件,找到来自IP地址的用户所在的国家/地区。中间件位于App /中间件目录中,就像控制器一样,它们也是普通的JavaScript类。
1.运行以下ACE命令以创建新的中间件文件。
2,安装Geoip-Lite。从“IP地址”找到用户位置的NPM依赖性。
3.打开新创建的文件并将其内容替换为以下代码片段。
应用程序/中间件/detectusercountry.ts
4.在start / kernel.ts文件中注册中间件。
start / kernel.ts.
5.最后,创建一个路由显示用户被检测到的国家/地区。
开始/路线.TS.
发生了什么?
有很多东西上面,让我们一步一步地解码它。
使用GeoIP-Lite,我们尝试从IP地址查找该国的用户。
接下来,我们的国家在请求对象上设置。当您尝试添加动态属性时,您将收到一个类型的错误错误,但现在我忽略它,我们稍后会解决它。
中间件完成后,必须调用下一个下一个函数。以这种方式,将执行链中的下一个中间件,最后执行路由处理程序。
最后,您必须在中间注册中间件start / kernel.ts。与控制器一样,您无需导入中间件文件,您可以将其作为字符串引用传递。
扩展类型
如果在本指南中执行此操作,则会注意到尝试将国家/地区添加到请求对象时抱怨,如下所示。
如果您使用了类型签字,则在尝试在运行时扩展值时可能会遇到类似的情况。事实上,这对于任何静态类型的任何语言都是如此。
由于adonisjs之一是可扩展性,我们投入了足够的想法,让您轻松扩展静态类型。为此,让我们在合同文件夹中请求新文件。
打开新创建的文件并将以下代码片段粘贴到其中。之后,TypeScript将停止抱怨。
如何运行?
要扩展任何对象或类,必须在界面中键入它们。该概念也称为接口编程或松动耦合代码。
接下来,您可以使用CyperScript的声明合并功能来合并属于单个模块的两个接口的属性,并具有相同的名称。
嘿,您已成功扩展了类型。所有adonisjs代码库都松散耦合,可以以相同的方式扩展。
路由中间件路由中段工作模式与全局中间件相同,仅在特定路由上,而不是在每个HTTP请求上执行它们。
一个不错的选择是访问控制中间件,只想将其应用于路由的子集。为了演示,让我们创建一个中间以选择性地实现访问控制。
第一步是在start / kernel.ts文件中创建和注册中间件。这次我们需要将其注册为命名的中间件。
1.运行以下命令以创建新的中间件
2.打开新创建的中间件文件并将以下内容粘贴到文件中。
3.将其注册为命名的中间件。对象键是我们稍后将引用的别名,并且对象值是中间件类的命名空间。
4,最后,使用测试功能创建一些虚拟路由。
如何运行?必须使用server.middle.registernamed方法注册路由中间件,然后在路由上使用它。
Route.MiddleWare通过使用冒号可以传递给中间件:具有冒号的快递参数:表达式。
参数句柄传递给函数作为第三个参数。
异处理
adonisjs允许您在全局HTTP请求期间发生异常。在本指南结束时,您将知道:
如何在一个位置捕获所有异常。
使用异常作为控制流程。
建议处理自己。
状态页面,仅开发错误页面等。
全球异常处理程序
全局异常处理程序位于应用程序/例外/ handler.ts文件中。您可以通过编辑ExceptionHandlernamespace中的值来定义其位置.Adonisrc.json。
异常处理程序类扩展了adonis / core / httpExceptionHandleradonisjs。全部
我们将讨论的E功能是从Base HttpExceptionHandler类继承的。
处理方法
只要在HTTP请求周期内触发未处理的异常,处理将调用此方法。句柄方法将收到错误对象和HTTP上下文。
您可以使基本异常处理程序来处理异常,除非您要手动处理特定的异常。例如:
这份报告方法
报表方旨在报告/记录调试的异常。默认情况下,基本异常处理程序将使用应用程序记录器记录所有异常。但是,您还可以实现此方法以以其他方式手动处理报告。
错误报告
默认报告方法将向全局异常处理程序报告所有异常。特别是当没有必要操作例外时,对每个异常都会令人讨厌。出于同样的原因,基本异常处理程序允许您将错误代码或状态代码包含在报告黑名单中。
Ignorecodes和Ignorestatuses所需的错误代码数组需要忽略一系列错误。您可以根据自己的便利选择其中一个。
自我处理异常
Adonisjs提供了一种处理异常,可以在异常类上处理异常的好方法。一个很好的例子是验证器提出的验证异常。
您可以通过运行以下ACE命令创建您自己的自定义异常。
在文本编辑器中打开新创建的文件并实现句柄方法。
最后,创建虚拟路由以测试异常行为。
如果访问http:// localhost:3333,您必须看到类似于以下屏幕截图的屏幕截图的消息。
状态页面
基本异常处理程序允许您配置要为特定状态代码呈现的模板。例如:定义404状态代码模板和500系列状态代码模板。
无论何时异常处理程序都会显示模板404时,都会发现错误。
使用范围表达式..我们都将错误分配给599状态代码。
默认
接下来,在开发过程中将不会呈现状态页面。 但是,您可以使用disableestatusPagesIndeventFlag打开它。