egg创建后端项目(二)

简介: 简单来说,就是把业务逻辑代码进一步细化和分类,所以和数据库交互的代码都放到Service中。这样作有三个明显的好处。

一、egg安全机制配置


在config/config.defalut.js里面设置


// CSRF防跨域关闭
config.security = {
    csrf: {
      enable: false,
    },
};


二、使用REST Client进行请求测试


在项目任意目录新建test.http文件,文件内容为


POST http://127.0.0.1:7001/test
Content-type: application/json
Authorization: token xxx
{
   "name": "sample",
   "time": "Wed, 21 Oct 2015 18:27:50 GMT"
}
name=lisi


在/controller/test.js如何获取上面的发送请求参数


const Controller = require('egg').Controller;
class TestController extends Controller {
  async index() {
    const ctx = this.ctx;
    ctx.body = {
      status: 200,
      data: ctx.request.body--获取到传的值
    };
  }
}
module.exports = TestController;


注意


如果请求头是application/x-www-form-urlencoded 请求参数是name=lisi


那么ctx.request.body返回的就是


"name": "'lisi'"


如果请求参数是


{
   "name": "sample",
   "time": "Wed, 21 Oct 2015 18:27:50 GMT"
}


那么返回的就是


"{\r\n    "name": "sample",\r\n    "time": "Wed, 21 Oct 2015 18:27:50 GMT"\r\n}": ""


但是一般我们传参都是json形式的传参,所以服务器请求头是Content-type: application/json; charset=utf-8

那么返回的就是


{
    "name": "sample",
    "time": "Wed, 21 Oct 2015 18:27:50 GMT"
  }


三、Service服务的编写


官方对Service服务的说明


Service就是在复杂业务场景下用于做业务逻辑封装的一个抽象层。


简单来说,就是把业务逻辑代码进一步细化和分类,所以和数据库交互的代码都放到Service中。这样作有三个明显的好处。


  • 保持Controller中的逻辑更加简介。


  • 保持业务逻辑的独立性,抽象出来的Service可以被多个Controller调用。


  • 将逻辑和展现分离,更容易编写测试用例。


个人建议只要是和数据库的交互操作,都写在Service里,用了Egg框架,就要遵守它的约定。

相关文章
|
7月前
|
SQL 小程序 前端开发
【易售小程序项目】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
【易售小程序项目】商品详情展示+评论、评论展示、评论点赞+商品收藏【后端基于若依管理系统开发】
76 0
|
7月前
|
SQL 小程序 JavaScript
【易售小程序项目】小程序首页(展示商品、商品搜索、商品分类搜索)【后端基于若依管理系统开发】
【易售小程序项目】小程序首页(展示商品、商品搜索、商品分类搜索)【后端基于若依管理系统开发】
40 0
|
8月前
|
域名解析 监控 JavaScript
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
宝塔面板pm2管理器部署node.js(express框架)sever文件,可以使用域名访问你的后端项目
470 0
|
7月前
|
小程序
【易售小程序项目】悬浮按钮+出售闲置商品+商品分类选择【后端基于若依管理系统开发】
【易售小程序项目】悬浮按钮+出售闲置商品+商品分类选择【后端基于若依管理系统开发】
32 0
|
4月前
|
前端开发 API Docker
web前端开发项目走proxy代理后端接口,构建发布到生产等环境后,如何修改api接口
web前端开发项目走proxy代理后端接口,构建发布到生产等环境后,如何修改api接口
43 0
|
7月前
|
消息中间件 存储 XML
【易售小程序项目】私聊功能后端实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】
【易售小程序项目】私聊功能后端实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】
78 0
|
4月前
|
JavaScript
vue项目中统一管理多个后端URL的方法
vue项目中统一管理多个后端URL的方法
44 0
|
4月前
|
JSON API 数据库
C++文件服务器项目—数据库表设计 与 后端接口设计—6(三)
C++文件服务器项目—数据库表设计 与 后端接口设计—6(三)
76 0
|
5月前
|
运维 API 语音技术
Python智能语音识别语翻译平台|项目后端搭建
Python程序设计基础,第三方库Django、requests、hashlib、pyttsx3等的使用,百度API语音识别业务接口、文本朗读业务接口、翻译业务接口的传入。
120 0
Python智能语音识别语翻译平台|项目后端搭建
|
5月前
|
前端开发 关系型数据库 MySQL
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
J2EE项目部署与发布(Linux版本)->jdk&tomcat安装,MySQL安装,后端接口部署,linux单体项目前端部署
55 0