將 CNode 社區從 Egg.js 遷移到 Midway 系列實戰 一 項目初始化

前言

以前寫過一篇介紹 Midway 的文章,文中提到了要作 Midway 實戰,思來想去沒什麼項目可寫,因此直接借鑑 CNode 社區將其用 Egg.js 構建的論壇網站使用 Midway 重構一遍,由於 Midway 自己也是基於 Egg.js 因此重構並非很困難。大部分代碼均可以直接使用。javascript

項目初始化

首先,先使用 Midway-init 工具建立一個 Midway 應用的目錄結構html

$ npm install midway-init -g
$ midway-init
// 可使用 --type 指定模板名
$ midway-init --type midway-ts-ant-design-pro
複製代碼

建立完的 Midway 目錄以下前端

.
├── README.md
├── README.zh-CN.md
├── dist                                ---- 編譯後目錄
├── logs                                ---- 本地日誌目錄
│   └── midway6-test                    ---- 日誌應用名開頭
│       ├── common-error.log            ---- 錯誤日誌
│       ├── midway-agent.log            ---- agent 輸出的日誌
│       ├── midway-core.log             ---- 框架輸出的日誌
│       ├── midway-web.log              ---- koa 輸出的日誌
│       └── midway6-test-web.log
├── package.json
├── src                                 ---- 源碼目錄
│   ├── app                             ---- web 層目錄
│   │   ├── controller                  ---- web 層 controller 目錄
│   │   │   ├── home.ts
│   │   │   └── user.ts
│   │   ├── middleware (可選)            ---- web 層中間件目錄
│   │   │   └── trace.ts
│   │   ├── public (可選)                ---- web 層靜態文件目錄,能夠配置
│   │   ├── view (可選)
│   │   |   └── home.tpl                ---- web 層模板
│   ├── config
│   │   ├── config.default.ts
│   │   ├── config.local.ts
│   │   ├── config.prod.ts
│   │   ├── config.unittest.ts
│   │   └── plugin.ts
│   └── lib                             ---- 業務邏輯層目錄,自由定義
│   │   └── service                     ---- 業務邏輯層,自由定義
│   │       └── user.ts   
│   ├── interface.ts                    ---- 接口定義文件,自由定義
│   ├── app.ts                          ---- 應用擴展文件,可選
│   └── agent.ts                        ---- agent 擴展文件,可選
├── test
│   └── app
│       └── controller
│           └── home.test.ts
├── tsconfig.json
└── tslint.json
複製代碼

咱們先經過命令,安裝一下依賴,而後經過 npm scripts 來驅動命令java

$ npm install
$ npm run dev
複製代碼

當經過 npm run dev啓動時終端會輸出一些信息,在看到相似以下信息而且程序沒有異常退出,則是啓動成功了git

2019-07-25 13:47:17,662 INFO 45506 [master] midway started on http://127.0.0.1:7001 (4523ms)
// 經過 Curl 測試
$ curl 127.0.0.1:7001
  Welcome to midwayjs!
複製代碼

咱們先將 CNode 的前端資源和頁面,遷移到咱們 Midway 的目錄下。 將 CNode 項目目錄 APP 目錄下的 public 目錄裏面的全部文件,複製到咱們剛剛新建的項目的 src/app/public目錄下。github

$ cd /src/app/public
$ ls
README.md        images           javascripts      stylesheets
github-card.html img              libs             upload
複製代碼

而後將 CNode views 目錄下的全部文件,複製到咱們剛剛新建的項目的 /src/app/view 目錄下,若是這個目錄不存在,請先新建一個。web

$ cd /src/app/view
$ ls
_ads.html           index.html          reply               static
_sponsors.html      layout.html         search              topic
editor_sidebar.html message             sidebar.html        user
includes            notify              sign
複製代碼

CNode 使用 redis 和 Mongodb,因此咱們安裝一下 redis 和 MongoDB 插件。redis

// 使用採用 Egg 插件機制封裝的 redis,以及 Mongodb 的 ODM 框架 Mongoose
npm install egg-mongoose --save
npm install egg-redis --save 
複製代碼
相關文章
相關標籤/搜索