egg.js基本用法

而 Egg 选择了 Koa 作为其基础框架,在它的模型基础上,进一步对它进行了一些增强。,egg是按照指定的目录结构去搭建web服务。

初始化项目

$ mkdir egg-example
$ cd egg-example
$ npm init
$ npm i egg --save
$ npm i egg-bin --save-dev

为了提升研发体验,我们提供了便捷的方式在本地进行开发、调试、单元测试等。
在这里我们需要使用到 egg-bin 模块。
首先,我们需要把 egg-bin 模块作为 devDependencies 引入:
添加 npm scriptspackage.json

{
  "scripts": {
    "dev": "egg-bin dev"
  }
}

这样我们就可以通过 npm run dev 命令启动应用。

目录结构

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

由于我们在 Cookie 中需要用到加解密和验签,所以需要配置一个秘钥供加密使用。在 config/config.default.js

module.exports = {
  keys: 'key1,key2',
};

编写 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);
};

简单的说 Controller 负责解析用户的输入,处理后返回相应的结果,例如

常用API

  1. this.ctx.curl 发起网络调用。
  2. 通过 ctx.set(key, value) 方法可以设置一个响应头
  3. ctx.get(name) 获取请求 header 中的一个字段的值,如果这个字段不存在,会返回空字符串。

官方文档

你可能感兴趣的:(基础知识)