Eggjs

Egg.js 是一个企业级 Node.js 框架,基于 Koa,提供高度可扩展的插件机制,适用于开发团队和开发人员。它遵循「约定优于配置」,具有内置多进程管理、高扩展性和稳定性。Egg.js 通过 Loader 支持环境定制配置,允许开发者通过扩展 application, context, request, response 四个对象的原型来自定义辅助方法。此外,文章还介绍了如何快速搭建项目,包括初始化、配置、静态资源处理、模板渲染、Service、Middleware 编写以及配置文件的管理。" 113209957,10293300,MySQL布尔盲注详解与DVWA实战,"['SQL注入', '数据库安全', 'MySQL函数', 'Web安全']
摘要由CSDN通过智能技术生成

Egg.js

简介

Egg.js 为企业级框架和应用而生,帮助开发团队和开发人员降低开发和维护成本。

专注于提供 Web 开发的核心功能和一套灵活可扩展的插件机制,不会做出技术选型,因为固定的技术选型会使框架的扩展性变差,无法满足各种定制需求。

Egg 的插件机制有很高的可扩展性,一个插件只做一件事,Egg 通过框架聚合这些插件,并根据自己的业务场景定制配置,这样应用的开发成本就变得很低。

Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,Egg 有很高的扩展性,可以按照团队的约定定制框架。使用 Loader 可以让框架根据不同环境定义默认配置,还可以覆盖 Egg 的默认约定。

特性

  • 提供基于 Egg 定制上层框架的能力
  • 高度可扩展的插件机制
  • 内置多进程管理
  • 基于 Koa 开发,性能优异
  • 框架稳定,测试覆盖率高
  • 渐进式开发(根据设备的支持情况来提供更多功能,提供离线能力,推送通知,甚至原生应用的外观和速度,以及对资源进行本地缓存。)

Egg和koa

如上述,Koa 是一个非常优秀的框架,然而对于企业级应用来说,它还比较基础。

而 Egg 选择了 Koa 作为其基础框架,在它的模型基础上,进一步对它进行了一些增强。

  • 在 Express 和 Koa 中,经常会引入许许多多的中间件来提供各种各样的功能,而 Egg 提供了一个更加强大的插件机制,让这些独立领域的功能模块可以更加容易编写。
    • extend:扩展基础对象的上下文,提供各种工具类、属性。
    • middleware:增加一个或多个中间件,提供请求的前置、后置处理逻辑。
    • config:配置各个环境下插件自身的默认配置项。
    • 一个独立领域下的插件实现,可以在代码维护性非常高的情况下实现非常完善的功能,而插件也支持配置各个环境下的默认(最佳)配置,让我们使用插件的时候几乎可以不需要修改配置项。

快速搭建环境

  • 运行环境

    • 建议选择Node.js稳定版本,最低要求 8.x
  • 初始化项目

    • npm init egg --type=simple   //--type=simple可以去掉然后自己配置
      cd demo
      npm install
      
  • 启动项目

    • npm run dev
      浏览器打开:localhost:7001
      

注意:实际项目中,推荐使用脚手架直接初始化,所以这里不做手动初始化项目了。

  • 如果了解java的可以看出eggjs的项目目录结构以及处理请求的模式和javaweb很像,controller,service,view;不陌生的是都是MVCde 开发模式,不同就是如何拿数据给请求者

  • 项目目录

    • app文件夹:
      	项目开发文件,程序员主要操作的文件,项目的大部分代码都会写在这里。
      config文件夹:
      	这个是整个项目的配置目录,项目和服务端的配置都在这里边进行设置。
      logs文件夹:
      	日志文件夹,正常情况下不用修改和查看里边内容。
      node_modules:
      	项目所需要的模块文件,这个前端应该都非常了解,不多作介绍。
      run文件夹:
      	运行项目时,生成的配置文件,基本不修改里边的文件。
      test文件夹:
      	测试使用的配合文件,这个在测试时会使用。
      .autod.conf.js: 
      	egg.js自己生成的配置文件,不需要进行修改。
      eslinttrc和eslintignore:
      	代码格式化的配置文件。
      gitgnore:
      	git设置忽略管理的配置文件。
      package.json:
      	包管理和命令配置文件,这个文件经常进行配置。
      
    • app目录中

      controller文件夹:
      	控制器,渲染和简单的业务逻辑都会写道这个文件里。配置路由时也会用到(路由配置需要的文件都要写在控制器里)。
      public文件夹:
      	公用文件夹,把一些公用资源都放在这个文件夹下。
      router.js: 
      	项目的路由配置文件,当用户访问服务的时候,在没有中间件的情况下,会先访问router.js文件。
      service文件夹:
      	这个是当我们的业务逻辑比较复杂或和数据库打交道时,会把业务逻辑放到这个文件中。
      view文件夹:
      	模板文件夹,相当于表现层的专属文件夹,这个项目,我们使用接口的形式,所以不需要建立view文件夹。
      extend文件:
      	当我们需要写一些模板中使用的扩展方法时,我们会放到这个文件夹里。
      middleware:
      	中间件文件夹,用来写中间件的,比如最常用的路由首位。
      
扩展插件

在基于 Egg 的框架或者应用中,我们可以通过定义 app/extend/{application,context,request,response}.js
这里表示可以创建application,context,request,response四个js文件

来扩展 Koa 中对应的四个对象的原型,通过这个功能,我们可以快速的增加更多的辅助方法,例如我们在 app/extend/context.js 中写入下列代码:

// ./app/extend/context.j
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值