美文网首页我爱编程
阿里Eggjs后端框架

阿里Eggjs后端框架

作者: Silver湫澲 | 来源:发表于2018-03-26 20:43 被阅读4375次

    node 从接触 Koa2 到上手 Egg2 之接触 Egg2

    安装 node

    • Node.js 官网下载 node8.9.x LTS 版本(长期支持版本)</p>

    安装你喜欢的编辑器

    • Visual studio code、
    • Atom
    • ...

    本次以 Visual studio code 演示

    初始化项目

    • 打开终端

      Ctrl+`
      
    • 输入初始化项目命令

      npm init
      
    • 输入安装 egg 命令

      npm install egg --save
      
    • 输入安装 egg-dev 命令

      npm install egg-bin --save-dev
      

    约定大于配置

    MVC 架构的 controller

    • 新建文件夹./app/controller/
    • 新建./app/controller/index.js

    Hello world

    • 拿到 egg 对象

      const egg = require("egg");
      
    • 拿到 Controller 基类

      const Controller = egg.Controller;
      
    • 基于 Controller 基类写一个自己的 Controller 类

      class HomeController extends Controller {}
      module.exports = HomeController;
      
    • 在自己 Controller 类中写一个控制器函数

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

    路由

    • 新建./app/router.js

    • 开始撰写要导出路由模块

      module.exports = (app) => {};
      
    • 开始撰写要导出路由模块

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

    egg.ctx

    • 继续撰写如下 controller

      class HomeController extends Controller {
        async index() {
          this.ctx.body = "Hello world";
        }
        async about() {
          this.ctx.body = "这个是关于";
        }
        async get() {
          this.ctx.body = {
            url: this.ctx.url,
            method: this.ctx.method,
            query: this.ctx.query
          };
        }
        async getId() {
          this.ctx.body = {
            id: this.ctx.params.id,
            url: this.ctx.url,
            method: this.ctx.method,
            query: this.ctx.query
          };
        }
      }
      
    • 继续撰写如下路由

      module.exports = app => {
        const { router, controller } = app;
        router.get("/", controller.index.index);
        router.get("/about", controller.index.about);
        router.get("/get", controller.index.get);
        router.get("/getid/:id", controller.index.getId);
      };
      
    • 进行测试

    • 打开

      http://host:port/
      
    • 打开

      http://host:port/about
      
    • 打开

      http://host:port/get?page=5&number=10
      
    • 打开

      http://host:port/getid/1234567?page=5&number=10
      

    静态资源服务器

    • 安装静态资源服务插件

      npm i egg-static --save
      
    • 打开

      http://host:port/public/index.html
      

    相关文章

      网友评论

        本文标题:阿里Eggjs后端框架

        本文链接:https://www.haomeiwen.com/subject/dfkdcftx.html