一:创建一个get请求
1、添加路由
//router.js
router.get('/getGirl', controller.home.getGirl);
2、创建控制器
//home.js中
async getGirl(){
const ctx=this.ctx
ctx.body=ctx.query
}
浏览器地址栏访问 url/getGirl?name=小红&age=18 后,可以看到浏览器输出了
{"name":"张三","age":"18"}
二:params路由
1、添加路由
//router.js
router.get('/getGirl/name', controller.home.getGirl);
2、创建控制器
//home.js中
async getGirl(){
const ctx=this.ctx
ctx.body=ctx.params
}
浏览器地址栏访问 url/getGirl/小红 后,可以看到浏览器输出了
{"name":"张三"}
params和query的区别
- 1、传递方式不同:param参数在url问号之前,
- 2、获取方式不同:params 是通过ctx.params,query是通过ctx.query获取
三:post请求
1、添加路由
//router.js
router.post('/addGirl', controller.home.addGirl);
2、创建控制器
//home.js中
async addGirl(){
const ctx=this.ctx
ctx.body=ctx.request.body
}
3、解除csrf限制
egg默认是不允许直接post的json访问,需要放开限制才可以
//config.default.js
// csrf 正式环境一定要关闭
config.security= {
csrf: {
ignoreJSON: true, // 默认为 false,当设置为 true 时,将会放过所有 content-type 为 `application/json` 的请求
},
}
可以下载个postman或者apifox发post请求,以json的形式发送,可以看到你发送的所有参数全部被返回了
{"name":"张三"}
egg相对来说比nestjs简单些,单说一点它自动引入了大量的东西,像body,query,params等都是直接拿来用,nestjs什么东西都要手动引入,比egg更加灵活强大,这或许也是nestjs火的原因吧。 如果你是node新人,看到这篇文章,请果断转nestjs,虽然那个学习曲线有点陡峭。。