Миграция сообщества CNode с Egg.js на серию Midway Combat 1 Инициализация проекта

Node.js

предисловие

Я писал статью о Midway раньше. В статье упоминалось, что нам нужно провести настоящую битву с Midway. После размышлений нет проекта, который можно было бы написать, поэтому я напрямую использовал сообщество CNode для рефакторинга его веб-сайта форума, созданного с помощью Egg.js, используя Midway. , потому что Midway также основан на Egg.js, поэтому рефакторинг не очень сложен. Большую часть кода можно использовать напрямую.

Инициализация проекта

Сначала используйте инструмент Midway-init, чтобы создать структуру каталогов для приложения Midway.

$ 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водить команду

$ npm install
$ npm run dev

когда прошлоnpm run devПри запуске терминал выводит некоторую информацию.Если вы видите информацию, подобную следующей, и программа не завершается аварийно, значит, запуск выполнен успешно.

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. Скопируйте все файлы из общего каталога в каталоге APP каталога проекта CNode в новый проект, который мы только что создали.src/app/publicПод содержанием.

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

Затем скопируйте все файлы из каталога представлений CNode в новый проект, который мы только что создали./src/app/viewЕсли каталог не существует, сначала создайте новый.

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

// 使用采用 Egg 插件机制封装的 redis,以及 Mongodb 的 ODM 框架 Mongoose
npm install egg-mongoose --save
npm install egg-redis --save