2021 年了,是该了解下 Midway.js 了,我这几行代码给你看看

2021-04-09 19:16:41 +08:00
 verncake

2021 年了,是该了解下 Midway.js 了,我这几行代码给你看看

FSD Service

FSD (Full Stack Develop) Service - Midway.js 的最佳实践

拓展阅读:

项目导览 & TODO

在这个项目中,你会看到以下基于 Midway 的实践案例 (上层使用 Egg.js )

我们正在做以下工程实践例子,大家你遇到什么问题,或者希望追加什么功能,或者学习内部实现。 可以关注我们的仓库(点赞,分享...三连)在 issue 留言,我们会征集你的意见,带来最干货的案例。

帮你扫清学习障碍,让你用起 Midway 来更加得心应手,提升能效,找回编码的乐趣。

框架特性及能力应用

功能

基础

超级管理

快速开始

see Midway docs for more detail.

Development

先将 database 目录下到 sql 文件迁移到数据库,修改默认的 config 配置文件(需要 Redis 和 MySQL 服务可以正常访问)

$ npm i
$ npm run dev
$ open http://localhost:7001/

Deploy

$ npm start
$ npm stop

npm scripts

Redis

Redis 划分

建议使用 Redis 的时候,对所有 key 做好命名空间划分,便于管理。可把 scope 写到对照表中。

借助 jwt 插件做签名校验,管理员的 token 中会包含 id 字段。

所有 admin 相关的缓存数据都放在 admin:xxxx 下面。

数据库

所有实体表均有 deleted_at 字段(目前基础模块不使用软删除),用于软删除。

如果要关闭软删除,将 deletedAt 字段注释即可

进行软删除的时候,关系表的数据不做改动。

后期根据需要,用脚本定期清理软删除的数据。

以下模块未使用软删除:

查询注意事项

业务软删除单独写一个 BaseModel,其他实体继承该 Model 即可

接口响应统计中间件(设计)

做接口响应数据统计的出发点,有两点(即使有类似的第三方包,但还是自己实现以下):

虽然框架本身已经有日志功能,但是很多场景下,我们可能需要看下各个接口服务的响应状态

是在正常服务,还是已经出现问题。在有监控的帮助下,可以快速帮我们定位日志排查问题。

是对应统计实时数据而言,这里我们会使用 RTS 的技术方案,会用到 RabbitMQ 和 Redis

RabbitMQ 作用在于把统计的计算异步化,从而不影响正常的业务请求处理

(消费者的逻辑代码,需要写在单独一个工程,独立部署)

大致流程如下,手绘的,工具简陋,姑且看一下。

答疑

群里会有热心的朋友,也会有新版本发布推送。钉钉扫码加入答疑群

二群

一群(已满)

License

我们的代码使用 MIT 协议,请放心使用。

3888 次点击
所在节点    程序员
17 条回复
dream4ever
2021-04-09 22:08:38 +08:00
看完之后就一个感觉:乱糟糟,没看到重点……
imzcg2
2021-04-09 22:11:04 +08:00
这就是传说中的一个 js 一个前后端全站项目吗
constructor
2021-04-09 22:18:20 +08:00
很棒的框架,加油!
pigspy
2021-04-09 22:39:55 +08:00
跟 nestjs 有啥区别
uptonking
2021-04-09 22:46:20 +08:00
node 的后端框架我还是选 nestjs,nestjs 贡献者多且生态丰富,midway 除了阿里的人会用其他很少人用了,搞不好哪天没有 kpi 就被丢进垃圾桶了
blindpirate
2021-04-09 22:51:57 +08:00
WildCat
2021-04-09 23:10:44 +08:00
用叮叮群聊技术 🥶
yamedie
2021-04-10 09:16:55 +08:00
eggjs 还在更新吗? cnodejs.org 关站快一年了
verncake
2021-04-10 12:26:09 +08:00
@blindpirate 短期能解决业务功能开发效率问题,但长期的维护成本相当高,也算是提升人效的一种尝试,创业项目快速试错用也还不错,weex 应该暂时停更了。
verncake
2021-04-10 12:27:33 +08:00
@uptonking Midway.js 真不是 KPI 项目,现有专门的 team 维护,主未来 Serverless 方向
verncake
2021-04-10 12:28:56 +08:00
@dream4ever 这是个实践项目,框架相关的移步 midwayjs.org
verncake
2021-04-10 12:29:40 +08:00
@imzcg2 一个 JavaScript 开发,打通前后端
verncake
2021-04-10 12:31:00 +08:00
@yamedie eggjs 核心库基本很稳定,暂时没什么更新
verncake
2021-04-10 12:32:04 +08:00
该文章对应的项目地址 https://github.com/fsd-nodejs/service-mw2
ericgui
2021-04-11 00:28:13 +08:00
@WildCat 对,这个最恶心了
ericgui
2021-04-11 00:29:40 +08:00
@verncake 你们对任何项目都没有一个长期承诺,都是短期某人升职的工具,那些当初被你们忽悠入坑 weex 的不被坑死了么?
verncake
2021-04-12 10:16:55 +08:00
@ericgui 技术是在不停的发展的,框架也在迭代,现在看来,跨端方案,Flutter 更优秀

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/769560

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX