1-1 egg框架初始化项目

3 篇文章 0 订阅

1.项目初始化

附上egg官方链接点击进入egg官网
(1).创建项目(打开cmd,进入想要创建项目的路径)

mkdir egg-example //egg-example为项目名称
cd egg-example  //进入项目路径
npm init egg --type=simple //初始化项目
npm i //下载所需的插件

(2)启动项目

npm run dev //启动项目

项目启动成功后会在显示启动成功后的端口号,浏览器输入 127.0.0.1:7001 就会显示默认页面
在这里插入图片描述

2.开发第一个api

找到项目目录里的app==》controller==》home.js(项目初始时的示例)
在这里插入图片描述
(1)创建一个api
egg内置对象传送门

 async list() {  //list为api功能的名称
    const { ctx } = this; //ctx 为egg的内置对象 
    ctx.body = {
		msg: 'ok',
		data: [
			{id: '1',name: '列表1'},
			{id: '2',name: '列表2'},
		]
	} //body方法是所返回的相应内容
  }

(2)添加路由
在这里插入图片描述
接口开发完成以后,想要访问该api,必须要通过路由绑定相应的功能模块

router.get('/list', controller.home.list); //新建一个get方式的路由,浏览器访问 127.0.0.1:7001/list  就会出现{msg: 'ok',data: [{id: '1',name: '列表1'},{id: '2',name: '列表2'}] }

(3)获取参数
Query String 方式

ctx.body = ctx.query.id //获取url?后面的参数 1234
//127.0.0.1:7001/list?id=1234

参数命名方式

// app/router.js
module.exports = app => {
  app.router.get('/list/:id/', app.controller.home.list);
};
// app/controller/home.js
ctx.body = ctx.params.id //获取url/后面的参数 1234
//127.0.0.1:7001/list/id=1234

表单内容的获取

// app/router.js
module.exports = app => {
  app.router.post('/form', app.controller.form.post);
};

// app/controller/form.js
exports.post = async ctx => {
  ctx.body = `body: ${JSON.stringify(ctx.request.body)}`;
}; //使用这种方式进行获取api请求,会发生报错,报错原因见下图

在这里插入图片描述
解决的方发请查看 3.解除 安全威胁csrf的防范 4.跨域
(4).更改状态码

ctx.status = 201;

3.解除 安全威胁csrf的防范

使用post方法接收参数会被csrf所拦截,所以在写post接口时,要将这个功能关闭
打开 config==》config.default.js, 在里面添加一段代码

config.security = {
		xframe: {
			enable: false,
		},
		csrf: {
			enable: false
		},
		domainWhiteList: ['*']
	};

4.跨域

egg中解决跨域需要下载一个插件
1.安装egg-cors

npm install  egg-cors --save 

2.打开config/plugin.js 在module.exports中添加代码

cors: {
    enable: true,
    package: 'egg-cors'
}

3.在config/config.default.js

config.security = {
    csrf: {
      enable: false
    },
    domainWhiteList: [ '*' ]
  };
 config.cors = {
    origin: '*',
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS'
};
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾里桃花

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值