参加了一个为期一周的小项目,推广一个“送春联,拜大年”的春节活动,因为是练手,所以就自己写完了前端和node端,将数据存在了cache里,再从cache里取到前端页面,没有关联数据库。
项目完成后,将操作步骤整理一下,和小伙伴们一起学习哈( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ
1.在小程序端的api文件里写了saveSpring()
//保存春联
ActivityServie.saveSpring = function(data) {
return request.post('/MicroActivity/saveSpring', data)
}
//获取春联
ActivityServie.getSaveSpring = function(data) {
return request.post('/MicroActivity/getSaveSpring', data)
}
2.将这个文件引入到需要用到该接口的vue文件里,调用该接口,查看返回值
3.在node端的router文件中
//保存春联
router.post('/saveSpring', controller.saveSpring);
//获取春联
router.post('/getSaveSpring', controller.getSaveSpring);
4.在controller层
var controller = {
/**
* 春联活动保存接口
*/
saveSpring: async function(ctx, next) {
var data = ctx.request.body;
var result = await microActivityService.saveSpring(data);
ctx.rest(200, "", result);
}
}
5.在service层
const microActivityService = {
setData: async function(orgId, activityId, data, time) {
var key = `${orgId}|${activityId}`
await cache.set(key, data, time)
return true
},
saveSpring: async function(data) {
// 保存春联
await microActivityService.setData(data.orgId, data.activityId, data, 100000)
var res = await cache.get(`${data.orgId}|${data.activityId}`)
console.log('save' + `${data.orgId}|${data.activityId}`);
return res
}
}
这里封装了setData函数,将orgid和activityid设为一个key值,将前端页面传过来的数据保存到这个key值里
到这里就成功将数据存到cache里,接下来就是取数据的步骤
6.在controller层
/**
* 获取春联活动详情
*/
getSaveSpring: async function(ctx, next) {
var data = ctx.request.body;
var result = await microActivityService.getSaveSpring(data);
ctx.rest(200, "", result);
}
将前端传过来的取数据的时候需要用到的数据传进来,作为参数传到service层
7.在service层
getSaveSpring: async function(data) {
var res = await cache.get(`${data.orgId}|${data.activityId}`)
return res;
}
通过key值取到数据,返回到controller层
8.在前端页面通过调用接口的返回值取到cache里的值
OK!大功告成啦~
网友评论