eggjs框架学习心得

前言:

    eggjs作为阿里开源的企业级 Node.js 框架,其官网教程https://eggjs.org/zh-cn/tutorials/index.html介绍的很详细,可以帮助初学开发者快速搭建运行eggjs框架。本文主要介绍一些本人对eggjs的学习心得,

也建议初学者从官网教程进行学习,然后找开源项目进行仿照实战。

eggjs框架目录结构

  官网的目录结构介绍缺了不少,以下是eggjs框架目录结构。开发者主要使用的app目录进行业务的开发。

egg-project
├── .autod.conf.js【eggjs调用的配置文件】
├── .travis.yml 【travis配置文件】
├── appveyor.yml【appveyor配置文件】
├── .eslintignore 【忽略代码格式化配置文件】
├── .eslintrc 【代码格式化配置文件】
├── package.json【相关依赖模板、版本信息、启动命令配置文件】
├── package_lock.json【node_modules目录下所有模块的具体来源和版本号以及其他的信息】
├── jsconfig.json【VSCODE指定根文件和JavaScript语言服务提供的功能选项】
├── app.js (可选) 【自定义启动时的初始化工作】
├── agent.js (可选) 【自定义agent启动时的初始化工作】
├── logs 【日志目录】
├── node_modules【node模块目录】
├── run【运行时生成的配置文件目录】
├── typings 【智能提示控件】
├── app 【应用层目录】
|   ├── router.js 【配置 URL 路由规则文件】
│   ├── controller 【控制器目录】
│   |   └── home.js 【用于解析用户的输入,处理后返回相应的结果的文件】
│   ├── service (可选)【服务层目录】
│   |   └── user.js 【编写业务逻辑层文件】
│   ├── middleware (可选) 【中间件目录】
│   |   └── response_time.js 【中间件文件】
│   ├── schedule (可选)【定时任务目录】
│   |   └── my_task.js 【定时任务文件】
│   ├── public (可选) 【静态资源文件】
│   |   └── reset.css 【一个css文件】
│   ├── view (可选) 【模板文件目录】
│   |   └── home.tpl 【模板文件】
│   └── extend (可选) 【框架的扩展目录】
│       ├── helper.js (可选)【扩展helper对象文件】
│       ├── request.js (可选)【扩展request对象文件】
│       ├── response.js (可选)【扩展response对象文件】
│       ├── context.js (可选) 【扩展ctx对象文件】
│       ├── application.js (可选) 【扩展app对象文件】
│       └── agent.js (可选)【扩展agent对象文件】
├── config 【配置文件目录】
|   ├── plugin.js 【插件的配置文件】
|   ├── config.default.js 【默认的配置文件】
│   ├── config.prod.js 【prod环境加载的配置文件】
|   ├── config.test.js (可选)【test环境加载的配置文件】
|   ├── config.local.js (可选)【local环境加载的配置文件】
|   └── config.unittest.js (可选)【unittest环境加载的配置文件】
└── test 【单元测试目录】
    ├── middleware 【中间件单元测试目录】
    |   └── response_time.test.js 【单元测试文件】
    └── controller 【控制器单元测试目录】
        └── home.test.js  【单元测试文件】

eggjs架构理解

eggjs作为MVC模型,开发人员主要涉及三个目录下的开发

view   视图 模板 页面的展示

controller 控制器 负责处理一些简单的业务逻辑

service  Model数据模型 和数据打交道 处理复杂的业务逻辑

eggjs做为BS架构,流程模式为request-response。

eggjs运行时,用户通过浏览器向eggjs发送请求,eggjs的路由模块router接收请求;

router根据开发者设置的路由规则,将请求发往控制器模块controller具体接口;具体流程如下:

 

 

 

 

 

 

 

 

 

    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值