02 egg.js参数传递

目录

一、项目执行顺序

二、路由参数传值

1、query方式获取

2、参数命名-params

3、页面获取信息


一、项目执行顺序

使用的IDE为VS Code。安装egg.js插件可以智能提示,注意图标背景为黑色的

对于egg.js项目启动时:

1、首先在路由组件router.js中找到对应的url。

2、然后找到对应的controller中的对应的方法。

3、最后渲染页面,访问http://127.0.0.1:7001/getlist

二、路由参数传值

可参见官网 路由

路由传参

- 通过params获取:this.ctx.params

问号传参

- 通过query获取:this.ctx.query

修改状态码

- 通过status修改:this.ctx.status

1、query方式获取

通过this.ctx.query获取参数

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

// app/controller/search.js
exports.index = async ctx => {
  this.ctx.body = this.ctx.query.name
};

// curl http://127.0.0.1:7001/search?name=egg

2、参数命名-params

通过this.ctx.params获取参数

// app/router.js
module.exports = app => {
  app.router.get('/user/:id/:name', app.controller.user.info);
};

// app/controller/user.js
exports.info = async ctx => {
  this.ctx.body = {
    id: this.ctx.params.id,
    name: this.ctx.params.name
  }
};

// curl http://127.0.0.1:7001/user/123/xiaoming

3、页面获取信息

1、安装模板引擎egg-view-ejs,可见网址

npm i egg-view-ejs --save

2、配置: 使用ejs解析.html文件

// {app_root}/config/plugin.js

exports.ejs = {

  enable: true,

  package: 'egg-view-ejs',

};

// {app_root}/config/config.default.js

exports.view = {

  mapping: {

    '.html': 'ejs',

  },

};

3、测试

// app/view/index.html

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

</head>

<body>

    hello <%= msg%>

    <% for (var i = 0; i < list.length; i++) {%>

        <h2><%= list[i]%></h2>

    <%}%>

    <!-- 对于静态资源可以直接访问  -->

    <img src="/public/image/home.png" alt="">  

</body>

</html>

// app/controller/home.js

async index() {

    var list = [1, 2, 3, 4]

    await this.ctx.render('index', {

      msg:'world'

      list

    })

  }

// app/router.js

module.exports = app => {

  const { router, controller } = app;

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

};

页面访问:http://127.0.0.1:7001/

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值