基於阿里egg框架搭建博客(1)——開發準備

相關文章

基於阿里egg框架搭建博客(1)——開發準備
基於阿里egg框架搭建博客(2)——Hello World
基於阿里egg框架搭建博客(3)——註冊與登錄
基於阿里egg框架搭建博客(4)——權限控制
基於阿里egg框架搭建博客(5)——置頂導航條
基於阿里egg框架搭建博客(6)——瀏覽、發表文章
基於阿里egg框架搭建博客(7)——編輯文章

git

https://github.com/ZzzSimon/e...
喜歡就點個贊吧!

什麼是egg.js

簡單來講就是一個基於nodejs與koa的WEB框架。

官方介紹:https://eggjs.org/zh-cn/intro...

環境準備

  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...

腳手架

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

結尾

如果看完覺得有用,請給作者一個喜歡吧!謝謝啦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章