eggjs学习笔记

egg框架概述

之前自学egg的时候记录的笔记,看的是晓舟报告系列视频

egg项目初始化

npm init egg --type=simple

项目目录需要手动创建,创建项目时间较长,需要耐心等待

比如创建一个空的文件egg_project,再输入上面的命令

执行cnpm install安装依赖

执行npm run dev启动

会提示通过http://127.0.0.1:7001访问首页

路由与控制器

mvc概述

mvc是一种软件设计规范,主要作用是逻辑拆分

可以将要实现的系统拆分成三层

模型model 处理数据

视图view 给用户显示数据

控制器controller 处理用户输入

egg中的控制器 controller:

1 直接相应数据或渲染模板

2 接受用户的输入

3 与路由建立对应关系

this.ctx可以获取到当前请求的上下文对象,通过此对象可以便捷获取到请求与响应的属性与方法

在controller目录下新建文件,这个文件就是控制器了

比如在controler目录下建立fruits.js文件,这就是fruits控制器

他自带的home.js里代码的意义如下:

'use strict'; //严格模式

              //并不是egg专有的,是js的语法



//controller类,egg提供的

//拿到controller类

const Controller = require('egg').Controller;



//定义我们自己的controller来继承egg提供的类

class HomeController extends Controller {

  async index() {

    const { ctx } = this;

    ctx.body = `

      <h1>hello kayo</h1>

    `;

  }

}



//暴露接口

module.exports = HomeController;

我们按照这个思路,写我们自己的fruits的文件:

fruits.js

const Controller = require("egg").Controller;



class FruitsController extends Controller{


}



module.exports = FruitsController;

先写出框架,再添加内容

const Controller = require("egg").Controller;



class FruitsController extends Controller{

    async index(){

        this.ctx.body = "我是一个水果列表页面" //上下文对象

    }

}



module.exports = FruitsController;

先简单设置一下,如果想显示这个页面,就要给他设置路由

通过在router.js里设置路由,就可以在访问https://127.0.0.1:7001/fruits的时候显示刚刚写的内容了

'use strict';



/**

 * @param {Egg.Application} app - egg application

 */

module.exports = app => {

  const { router, controller } = app;

  router.get('/', controller.home.index);

  router.get('/fruits',controller.fruit.index);

};

路由

通过路由传递参数

1 获取query参数

2 获取params参数

GET请求

第一种语法

在fruit.js里先修改相应的部分

const Controller = require("egg").Controller;



class FruitsController extends Controller{

    async index(){

        // this.ctx.request 可以拿到请求的对象

        // this.ctx.request.query 可以拿到get请求中url的参数

        //比如说想拿到一个索引的index

        let query = this.ctx.request.query;

        this.ctx.body = "我是一个水果列表页面" //上下文对象

    }

}



module.exports = FruitsController;

在浏览器里输入连接,http://127.0.0.1:7001/fruits?index=100,先传递一个参数index=100

 let query = this.ctx.request.query;

 console.log(query);

刷新页面,看到服务器可以输出,说明参数传递成功了

另一个GET的语法:

在router.js里添加一条新的路由

'use strict'; //严格模式



/**

 * @param {Egg.Applicatio
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值