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框架,就要遵守它的约定。

相关文章
|
3月前
|
算法 Java Linux
java制作海报五:java 后端整合 echarts 画出 折线图,项目放在linux上,echarts图上不显示中文,显示方框口口口
这篇文章介绍了如何在Java后端整合ECharts库来绘制折线图,并讨论了在Linux环境下ECharts图表中文显示问题。
73 1
|
3月前
|
前端开发 Java Shell
后端项目打包上传服务器部署运行记录
后端项目打包上传服务器部署运行记录
86 0
|
5月前
|
JSON 中间件 Go
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
本文详细介绍了如何在Go项目中集成并配置Zap日志库。首先通过`go get -u go.uber.org/zap`命令安装Zap,接着展示了`Logger`与`Sugared Logger`两种日志记录器的基本用法。随后深入探讨了Zap的高级配置,包括如何将日志输出至文件、调整时间格式、记录调用者信息以及日志分割等。最后,文章演示了如何在gin框架中集成Zap,通过自定义中间件实现了日志记录和异常恢复功能。通过这些步骤,读者可以掌握Zap在实际项目中的应用与定制方法
190 1
go语言后端开发学习(四) —— 在go项目中使用Zap日志库
|
5月前
|
存储 运维 小程序
后端开发零负担!揭秘支付宝小程序云开发的高效与安全,你的项目也能飞速上线?
【8月更文挑战第27天】支付宝小程序云开发是由阿里云提供的集成开发环境,助力开发者高效、安全地构建小程序后端服务,免去服务器搭建,显著提高开发效率并降低运维成本。它集成了云函数、云数据库及云存储等功能,便于快速搭建后端逻辑。例如,仅需简单几行代码即可创建HTTP接口或进行数据管理。这使得开发者能更专注于业务逻辑和用户体验优化,同时平台还提供了强大的安全保障措施,确保数据安全和用户隐私。无论对于初创团队还是成熟企业,支付宝小程序云开发都能有效提升产品迭代速度和市场竞争力。
112 1
|
5月前
|
JSON 缓存 监控
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
Viper 是一个强大的 Go 语言配置管理库,适用于各类应用,包括 Twelve-Factor Apps。相比仅支持 `.ini` 格式的 `go-ini`,Viper 支持更多配置格式如 JSON、TOML、YAML
112 0
go语言后端开发学习(五)——如何在项目中使用Viper来配置环境
|
5月前
|
前端开发 开发者 Apache
揭秘Apache Wicket项目结构:如何打造Web应用的钢铁长城,告别混乱代码!
【8月更文挑战第31天】Apache Wicket凭借其组件化设计深受Java Web开发者青睐。本文详细解析了Wicket项目结构,帮助你构建可维护的大型Web应用。通过示例展示了如何使用Maven管理依赖,并组织页面、组件及业务逻辑,确保代码清晰易懂。Wicket提供的页面继承、组件重用等功能进一步增强了项目的可维护性和扩展性。掌握这些技巧,能够显著提升开发效率,构建更稳定的Web应用。
132 0
|
5月前
|
前端开发 程序员 API
从后端到前端的无缝切换:一名C#程序员如何借助Blazor技术实现全栈开发的梦想——深入解析Blazor框架下的Web应用构建之旅,附带实战代码示例与项目配置技巧揭露
【8月更文挑战第31天】本文通过详细步骤和代码示例,介绍了如何利用 Blazor 构建全栈 Web 应用。从创建新的 Blazor WebAssembly 项目开始,逐步演示了前后端分离的服务架构设计,包括 REST API 的设置及 Blazor 组件的数据展示。通过整合前后端逻辑,C# 开发者能够在统一环境中实现高效且一致的全栈开发。Blazor 的引入不仅简化了 Web 应用开发流程,还为习惯于后端开发的程序员提供了进入前端世界的桥梁。
593 0
|
5月前
|
移动开发 开发框架 小程序
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
开发H5程序或者小程序的时候,后端Web API项目在IISExpress调试中使用IP地址,便于开发调试
|
5月前
|
JSON API 数据安全/隐私保护
Django 后端架构开发:JWT 项目实践与Drf版本控制
Django 后端架构开发:JWT 项目实践与Drf版本控制
108 0
|
6月前
|
前端开发 JavaScript Go

热门文章

最新文章