首页 游戏攻略 正文

管理员_游戏介绍_更新日志

这个《管理员_游戏介绍_更新日志》功能,我拖了得有大半年。每次游戏更新或者想改个介绍词,我都得手动去改数据库里的那几个字段,或者直接修改前端的HTML文件。改一次错一次,比写代码还烦人。

本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.me

不行,得搞个傻瓜式的后台来管它。我这人懒,不想用那些复杂的框架,比如什么Django、Spring Boot,杀鸡用牛刀。我的原则是:能跑就行,越简单越好。我就搓了个最简单的API,用NodeJS跑起来,因为我熟悉这个,能写得快,一个小时就能把基础环境搭

甩了两个表到数据库里。一个叫game_info,字段就三个,简单粗暴:一个id,一个存名字的game_title,一个存介绍内容的content_html。这个表我就只打算存一条数据,每次操作都是覆盖更新。另一个表叫patch_notes,这个稍微复杂点,我强行加了一个时间戳 post_date,还有一个version字段用来记录版本号。设计这个表的时候,我发现以前的版本号命名乱七八糟,一会儿是v1.0.1,一会儿又是Alpha_Test。所以这回我强制自己全部用X.Y.Z格式。不然以后我自己都搞不清楚哪个是哪个版本。

后端接口部分,老规矩,一套CRUD(增删改查)走到底。我先写了游戏介绍的更新接口:一个PUT /api/game_info,直接覆盖那条唯一的记录,简单得不能再简单。这里我没搞任何权限校验,因为只有我自己用,直接信任所有请求。

然后是更新日志的管理接口,这里就麻烦点了,得把新增、删除、修改和查询都搞定。我的思路是,直接在前端弄个富文本编辑器,把所有格式都编辑后端就直接存HTML格式的内容。一开始我想用Markdown,后来一想,玩家又不是程序员,直接HTML简单粗暴,省得我再加个解析器。我试了一下富文本编辑器的兼容性,发现那个开源的TinyMCE还行,拖进来直接用,省事儿。

前端页面简直就是我的噩梦。我也不想用Vue/React,就直接丢了个JQuery进去(别笑我,我写CRUD快)。我搭了个简单的管理界面,主要分两大块:

  • 左边是游戏介绍编辑区:一个标题输入框,一个富文本框,下面一个“保存”按钮。我绑定了API,一点击,数据直接飞到后端。

  • 右边是更新日志管理:上面是一个“新增日志”按钮,点开弹个模态框录入版本号和内容。下面是列表,拉取数据库里的所有日志,按时间倒序排列。每一条日志后面我都加了“修改”和“删除”两个小按钮。为了防止误删,我又加了一个JS的confirm()弹窗,虽然土,但好用。

整个过程,我花了一个周末,主要时间都耗在调那个富文本编辑器的样式上了,这玩意儿配置项是真的多,搞得我头大。不过现在好了,我更新的时候,版本号一填,内容一粘贴,啪啪啪敲几下,一分钟搞定。再也不用半夜爬起来手动改数据库字段了。我这人就是这样,能用工具解决的问题,坚决不用人肉去碰,累死自己。