因为大前端概念的火热。最近就想学习一下eggjs的简单使用。书写这个博客,就是简单的记录一下。供后续学习和复习使用。
1.安装egg.js
全局切换镜像:
npm config set registry https://registry.npm.taobao.org
安装egg:
npm init egg --type=simple
下载依赖:
npm i
启动项目
npm run dev
open http://localhost:7001
2.书写第一个接口:如下图:对于各个参数获取的方法书写
如果书写接口,对于参数的获取,如下图所示。获取路由参数,url后面的参数和post请求的参数
总结如下:获取各个参数的方法:
async index() {
const { ctx } = this;
// 获取路由get传值参数(路由:id)
ctx.params;
// 获取url的问号get传值参数
ctx.query;
// 获取post传递的参数
ctx.request.body;
// 响应
ctx.body = '响应';
// 状态码
ctx.status = 201;
}
3.post请求跨域的处理:
当我们使用postman,请求post的情况的时候,会出现如下的情况:
这里我们进行跨域处理。第一步下载跨域插件: npm i egg-cors --save
第二步配置插件:
第三步:config / config.default.js 目录下配置
config.security = {
// 关闭 csrf
csrf: {
enable: false,
},
// 跨域白名单
domainWhiteList: [ 'http://localhost:3000' ],
};
// 允许跨域的方法
config.cors = {
origin: '*',
allowMethods: 'GET, PUT, POST, DELETE, PATCH'
};
当上述步骤完成后,我们再次请求就会正常:这就是对于跨域的处理。
4.资源路由和路由分组:
资源路由,下面代码就在 /post
路径上部署了一组 CRUD 路径结构,对应的 Controller 为 app/controller/post.js
接下来, 你只需要在 post.js
里面实现对应的函数就可以了。
Method | Path | Route Name | Controller.Action |
---|---|---|---|
GET | /post | post | app.controllers.post.index |
GET | /post/new | new_post | app.controllers.post.new |
GET | /post/:id | post | app.controllers.post.show |
GET | /post/:id/edit | edit_post | app.controllers.post.edit |
POST | /post | post | app.controllers.post.create |
PUT | /post/:id | post | app.controllers.post.update |
DELETE | /post/:id | post | app.controllers.post.destroy |
路由分组:我们将上述的路由部分,转移到app下的router目录下。然后新建post.js和user.js下。然后在router.js下在引入:
上述就是我们第一节的简单介绍。对下载安装,参数,路由,跨域的简单学习。