egg(二):给刚建好的egg项目配置路由,写接口数据

前言:

        给egg项目中配置路由,并写入接口,提供数据。

实现效果:

一、路由的实现:官方入口

在app底下新建一个router的文件夹,我们这里把本地和线上分为两个路由文件来处理

1、把router.js中的默认文件删除

/**
 * 路由配置
 * @param app
 */
module.exports = app => {

  //--------------------------------------------------
  // 根据环境加载路由
  //--------------------------------------------------
  if(app.config.env === 'prod'){
    require('./router/router.prod')(app);
  }else{
    require('./router/router.local')(app);
  }
};

2、在controller下面新建两个文件夹,new,shop,再新建一个common.js,这些都是单独模块+公共模块的路由放的地方

common.js

/**
 *  公共路由
 * @param app
 * @returns {HomeController}
 */
const Controller = require('egg').Controller;
class HomeController extends Controller {
  async notFound(ctx){
    await ctx.render('404,渲染页面');
  }
  async fiveCu(ctx){
    await ctx.render('333333333');
  }
}
module.exports = HomeController;

shop/index

/**
 *  购物
 * @param app
 * @returns {HomeController}
 */
const Controller = require('egg').Controller;
class HomeController extends Controller {
  async list() {
    const { ctx } = this;
    ctx.body = 'hi, egg';
  }
}
module.exports = HomeController;

 3、router.local.js,线上的可以和本地一样,根据实际情况来

/**
 * 路由配置
 * @param app
 */
module.exports = app => {
    const { router, controller } = app;
    //--------------------------------------------------
    // 基础接口
    //--------------------------------------------------
    app.get('/', controller.shop.index.list); 
    app.get('/404', controller.common.notFound); 
    app.get('/500', controller.common.fiveCu);


};

到这一步实现效果:

 

 二、后台接口的实现:

1、get请求,打开刚刚建立的  new/list.js

//app/controller/news.js
const Controller = require('egg').Controller;
class NewsController extends Controller {
  async list() {
    const dataList = await this.other();
    this.ctx.body = {
      code:0,
      masg:'news list success',
      data:dataList
    };
  }

  async other() {
    return {
      list: [
        { id: 1, title: 'this is news 1', url: '/news/1' },
        { id: 2, title: 'this is news 2', url: '/news/2' }
      ]
    }
  }
}
module.exports = NewsController;

2、打开router.local.js,加上路由 app.get('/list', controller.new.list.list);

/**
 * 路由配置
 * @param app
 */
module.exports = app => {
    const { router, controller } = app;
    //--------------------------------------------------
    // 基础接口
    //--------------------------------------------------
    app.get('/', controller.shop.index.list); 

    app.get('/list', controller.new.list.list); //加入


    app.get('/404', controller.common.notFound); 
    app.get('/500', controller.common.fiveCu);


};

3、页面上输入:http://localhost:7001/list

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值