我在前端写Java SpringBoot项目

作者 | 京东云开发者-京东零售 周明亮
原文链接:https://my.oschina.NET/u/4090830/blog/10116557
前言
玩归玩 , 闹归闹 , 别拿 C端 开玩笑!这里不推荐大家把 Node 服务作为 C 端服务 , 毕竟它是单线程多任务 机制 。这一特性是 JAVA 语言设计之初,就决定了它的使命 - Java >>>【】,这里就不多解释了,大家去看看 Java 的历史就知道啦~这也就决定了 , 它不能像后端语言那样 多线程多任务 , 用户访问量小还能承受 , 一旦承受访问量大高并发,就得凉凉~
那为什么我们还要去写 Node 服务?主要是方便快捷,对于小项目可以迅速完成建设 , 开发成本小 。其次 , 主要通过写 Nest 完成下面收获:

  • 学习装饰器语法 , 感受其简洁优美;
  • 自己学习一门新的开发框架,感受不同框架的优缺点,为以后开发选型打基?。?/li>
  • 感受服务端排查问题的复杂性,找找前端设计的灵感 。
本篇文章主要是使用 NestJs + Sequelize + MySQL 完成基础运行, 带大家了解 Node 服务端的基础搭建,也可以顺便看看 Java SpringBoot 项目的基础结构,它俩真的非常相似,不信你去问服务端开发同学 。
养成好习惯,看文章先一键三连~【点赞,关注 , 转发】 , 评论可以看完再吐槽~继续完善填坑~
第一步、项目跑起来
在选择服务端的时候 , 我之前使用过 Egg.js ,所以这次就不选它了 。其次,Egg 也是继承了 Koa 的开发基础,加上 Express 也是基于 Koa 上创新的,两者应该差不多,就不选择 Koa 和 Express。
所以,我想尝试下 Nest.js 看语法跟 Java 是一样的,加上之前也自己开发过 Java + SpringBoot 的项目,当然更古老的 SSH 2.0 也从无到有搭建过,即:Spring2.0 + Struts2+ Hibernate3.2,想想应该会很容易上手,顺便怀旧下写写 。
参考文档:
  • https://www.geeksforgeeks.org/best-nodejs-frameworks-for-App-development/?
  • ?https://anywhere.epam.com/business/best-node-js-frameworks?
说下我的想法,首先我们刚入门,估计会有一堆不清楚的坑 , 我们先简单点,后续我们再继续加深 。既然要搞服务端,要搞就多搞点 , 我们都去尝鲜玩玩 。我们打算使用 Nest 作为前端框架 , Graphql 作为中间处理层 。底层数据库我们用传统的 MySQL,比较稳定可靠,而且相对比较熟悉,这个就不玩新的了,毕竟数据库是一切的基石。
说下我们具体实现步骤:
1.【必须】没有任何数据库,完成接口请求运行,能够跑起来;
2.【必须】创建基础数据库 MySQL ,接入 @nestjs/sequelize 库 完成 增删改查 功能即:CRUD
3.【可选】打算采取 Graphql 处理 API 查询,做到精确数据查询 , 这个已经火了很多了,但是真正使用的很少,我们打算先感受下,后续可以直接用到业务 。
4.【可选】接入 Swagger 自动生成 API 文档,快捷进行前端与后端服务联调测试 。
?Swagger 是一个开源工具,用于设计、构建、记录和使用 RESTful web 服务 。
5.【可选】接口请求,数据库优化处理
?请求分流,数据库写入加锁,处理并发流程
?增加 middleware 中间件统一处理请求及响应 , 进行鉴权处理 , 请求拦截等操作
?数据库分割备份,数据库融灾处理,分为:主、备、灾
?数据库读写分离,数据双写 , 建立数据库缓存机制,使用 redis 处理
也欢迎大家补充更多的优化点,我们一起探讨~有兴趣可以帮忙补充代码哈~
确定了大概方向,我们就开始整 。先不追求一步到位 , 否则越多越乱,锦上添花的东西,我们可以后续增加,基础功能我们要优先保障完成 。Nest.js 官网:https://docs.nestjs.com/  , 话不多说,我们直接开整 。
# 进入文件夹目录
cdfull-stack-demo/packages
# 安装脚手架
npmi -g @nestjs/cli
# 创建基础项目
nestnew node-server-demo
# 进入项目
cdnew node-server-demo
# 运行项目测试
npmrun start:dev
我们移除一些不需要的东西,先简单再复杂,别把自己搞晕了 。接下来写一个简单示例感受下这个框架 , 之后完整的代码,我会公布在后面 。废话不多说,开整!调整后目录结构:
•common- 公用方法类
•config- 配置类文件
•controller- 控制器 , 用于处理前端发起的各类请求


推荐阅读