小程序端和node端存取cache

2019-01-25  本文已影响0人  好奇的猫猫猫

参加了一个为期一周的小项目,推广一个“送春联,拜大年”的春节活动,因为是练手,所以就自己写完了前端和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!大功告成啦~

上一篇 下一篇

猜你喜欢

热点阅读