美文网首页
基于阿里egg框架搭建博客(1)——开发准备

基于阿里egg框架搭建博客(1)——开发准备

作者: 妖云小离 | 来源:发表于2019-03-13 15:06 被阅读0次

    相关文章

    基于阿里egg框架搭建博客(1)——开发准备
    基于阿里egg框架搭建博客(2)——Hello World
    基于阿里egg框架搭建博客(3)——注册与登录
    基于阿里egg框架搭建博客(4)——权限控制
    基于阿里egg框架搭建博客(5)——置顶导航条
    基于阿里egg框架搭建博客(6)——浏览、发表文章
    基于阿里egg框架搭建博客(7)——编辑文章

    git

    https://github.com/ZzzSimon/egg-example
    喜欢就点个赞吧!

    什么是egg.js

    简单来讲就是一个基于nodejs与koa的WEB框架。

    官方介绍:https://eggjs.org/zh-cn/intro/index.html

    环境准备

    1. 安装nodejs环境,下载地址:https://nodejs.org/en/download/
    2. 安装脚手架,在此基础上开发,具体执行以下命令:
    $ npm i egg-init -g
    $ egg-init egg-blog --type=simple
    $ cd egg-blog
    $ npm i
    

    非脚手架(初学者推荐)

    如果是初学者,建议自己创建所有的目录,以熟悉Egg官方所约定的规则。

    官方demo:https://eggjs.org/zh-cn/intro/quickstart.html#%E9%80%90%E6%AD%A5%E6%90%AD%E5%BB%BA

    脚手架

    Egg 奉行『约定优于配置』,按照一套统一的约定进行应用开发,团队内部采用这种方式可以减少开发人员的学习成本,开发人员不再是『钉子』,可以流动起来。没有约定的团队,沟通成本是非常高的,比如有人会按目录分栈而其他人按目录分功能,开发者认知不一致很容易犯错。

    如Egg官方所言,脚手架是对应用目录做了一个规范的示范,我们在此基础上开发能省下不少功夫。
    执行完上述命令之后,我们可以看到如下的目录结构:

    egg-project
    ├── package.json
    ├── app.js (可选)
    ├── agent.js (可选)
    ├── app
    |   ├── router.js
    │   ├── controller
    │   |   └── home.js
    │   ├── service (可选)
    │   |   └── user.js
    │   ├── middleware (可选)
    │   |   └── response_time.js
    │   ├── schedule (可选)
    │   |   └── my_task.js
    │   ├── public (可选)
    │   |   └── reset.css
    │   ├── view (可选)
    │   |   └── home.tpl
    │   └── extend (可选)
    │       ├── helper.js (可选)
    │       ├── request.js (可选)
    │       ├── response.js (可选)
    │       ├── context.js (可选)
    │       ├── application.js (可选)
    │       └── agent.js (可选)
    ├── config
    |   ├── plugin.js
    |   ├── config.default.js
    │   ├── config.prod.js
    |   ├── config.test.js (可选)
    |   ├── config.local.js (可选)
    |   └── config.unittest.js (可选)
    └── test
        ├── middleware
        |   └── response_time.test.js
        └── controller
            └── home.test.js
    

    如上,由框架约定的目录:

    • app/router.js 用于配置 URL 路由规则,具体参见 Router
    • app/controller/** 用于解析用户的输入,处理后返回相应的结果,具体参见 Controller
    • app/service/** 用于编写业务逻辑层,可选,建议使用,具体参见 Service
    • app/middleware/** 用于编写中间件,可选,具体参见 Middleware
    • app/public/** 用于放置静态资源,可选,具体参见内置插件 egg-static
    • app/extend/** 用于框架的扩展,可选,具体参见框架扩展
    • config/config.{env}.js 用于编写配置文件,具体参见配置
    • config/plugin.js 用于配置需要加载的插件,具体参见插件
    • test/** 用于单元测试,具体参见单元测试
    • app.jsagent.js 用于自定义启动时的初始化工作,可选,具体参见启动自定义。关于agent.js的作用参见Agent机制

    由内置插件约定的目录:

    • app/public/** 用于放置静态资源,可选,具体参见内置插件 egg-static
    • app/schedule/** 用于定时任务,可选,具体参见定时任务

    若需自定义自己的目录规范,参见 Loader API

    • app/view/** 用于放置模板文件,可选,由模板插件约定,具体参见模板渲染
    • app/model/** 用于放置领域模型,可选,由领域类相关插件约定,如 egg-sequelize

    结尾

    如果看完觉得有用,请给作者一个喜欢吧!谢谢啦!

    相关文章

      网友评论

          本文标题:基于阿里egg框架搭建博客(1)——开发准备

          本文链接:https://www.haomeiwen.com/subject/ixazpqtx.html