超简单的系统设置接口第27回。
Hello,这里是东哥。这节课要学习的是长乐未央全栈系列Node.js项目实践课程的第27回,超简单的系统设置接口。在这节课里将探讨表里只能有一条数据的接口如何开发?
系统设置接口就更加简单了,打开后只能编辑,没有列表,也没有新增,更没有删除。做法是在数据库里存一条默认记录,提交表单就实现更新功能好了。我觉得也用不着什么验证,所以连模型都不用改。当然如果想自己加点验证,也可以自己加一些必填之类的验证。
·先用种子文件生成一条默认的数据,粘贴。接着修改种子里的内容,就先设置成长乐未央的站点信息好了。直接复制,过来粘贴。
·然后运行一下种子命令,将文件名复制过去,刷新一下数据库。果然这个信息已经能显示出来了,这样数据库里就有了一条默认的记录了。
·项目的路由里也简单得多,只需要两个接口。
→第一个是查询单条,用于打开页面后读取默认的数据。
→第二个是更新数据,用户点击按钮后保存用户提交的表单。
·轻车熟路的直接来复制articles.js,然后点它的命,粘贴改为settings,确定。然后将多余的接口全部删掉。只要查询文章详情和更新文章接口,其他的都是没有用的。
·接着再来一手替换大法,还是按Ctrl+R键,将文章改为系统设置Replace All,然后大写的Article改为Setting。同样的,注意这里的Cc不能掉了,Replace All。然后是小写的article改为小写的setting,再Replace All。
·白名单这里接收的数据有点不一样,系统设置里面是没有title和content的,做一个调整。还有点问题,因为数据库里就只有一条记录,查询修改的都是它,所以也不用传id了。路由里和注释里的:id全都删掉,一样可以用查找替换大法替换成空就可以了。Replace All。
·注释的路径里多了一个/,斜杠,不是很好看,可以把它删掉。
·下面的getSetting方法也不需要接受req了,因为都不传id过来了,直接查第一条就行了。也做一个调整,这里用了fi ndOne,可以用它来查询数据库中符合条件的第一条记录,但这里并没有传where条件进去,就会直接把数据库的第一条记录查出来。
当然这里写findByPk(1)也是可行的,底下的提示信息也做了一点调整,调用的地方就直接写getSetting就可以了,中间不用传参数了。注意下,这个方法在两个接口中都是有的。
·完成后检查下顶部还有个多余的Op,这里并没有用到,可以直接删掉。
·接着当然就是去app.js添加路由了,给它加上,底下的use也加上。最终的代码大家可以在课程讲义中找到,如果有哪里有问题可以对照一下。
·完成后就请大家自己用Apifox测试接口了。注意下,这次的接口地址只有一个/admin/settings,但是请求方式有两个,GET和PUT分别用来实现查询和更新。
总结一下,对于系统设置这种功能可以在数据库里建一条默认数据,然后接口只能对这条记录进行查询和修改,不能新增和删除。