egg => egg初体验 不使用脚手架,逐步创建一个hello world web应用

90 阅读1分钟

在这里插入图片描述

正文

这是必备的Hello World章节,本章节将不使用脚手架,逐步创建一个hello world web应用。

  • 如果要使用脚手架直接npm init egg --type=simple
  • 然后yarn安装依赖就好了,yarn dev运行起来

初始化项目

先来初始化下目录结构:

$ mkdir egg-example
$ cd egg-example
$ npm init
$ npm i egg --save
$ npm i egg-bin --save-dev
  • 添加 npm scripts 到 package.json:
{
  "name": "egg-example",
  "scripts": {
    "dev": "egg-bin dev"
  }
}

编写 Controller

如果你熟悉 Web 开发或 MVC,肯定猜到我们第一步需要编写的是 Controller 和 Router。

// app/controller/home.js
const Controller = require('egg').Controller;

class HomeController extends Controller {
  async index() {
    this.ctx.body = 'Hello world';
  }
}

module.exports = HomeController;

配置路由映射:

// app/router.js
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.home.index);
};

加一个配置文件:

// config/config.default.js
exports.keys = <此处改为你自己的 Cookie 安全字符串>;

此时目录结构如下:

egg-example
├── app
│   ├── controller
│   │   └── home.js
│   └── router.js
├── config
│   └── config.default.js
└── package.json

好,现在可以启动应用来体验下

$ npm run dev
$ open http://localhost:7001
注意:

Controllerclassexports 两种编写方式,本文示范的是前者,你可能需要参考 Controller 文档。
Config 也有 module.exportsexports 的写法,具体参考 Node.js modules 文档。