美文网首页我爱编程
6、Express 使用redis读写数据并Promise化

6、Express 使用redis读写数据并Promise化

作者: 3e5224cef951 | 来源:发表于2017-04-12 00:05 被阅读0次

redis的安装:菜鸟教程:redis安装

redis管理工具:链接:http://pan.baidu.com/s/1eSxJRLC 密码:zdgy

package.json 添加

执行 npm install 添加redis依赖

在conf文件夹下建立 loaclredis.js文件

module.exports = {

redis: {

host: '127.0.0.1',

port: "6379",

ttl:1000*60*2

}

};

在根目录下建立redis.js文件建立redis初始化文件

const redis = require("redis");

const RedisOptions = require('./conf/localredis');//redis配置文件

const client = redis.createClient(RedisOptions.redis);

client.on("error", function (err) {

console.log("Error " + err);

});

client.hmset('myname', { name:'msq', truename: 'MaQun ' }, function(err) {

console.log(err)

});//建立一个字段存储对象

client.expire('myname',8);//设置过期时间为8秒

redis.client = client;

module .exports = redis;

工作目录:

建立路由

router.get('/redistest', (req, res, next)=> {

redis.client.hgetall('myname',(err,object)=>{

res.json(object);

});

});

运行之后,页面输出:

8秒之后:

node_redis 原生只支持callback写法 但官方支持使用bluebird工具将其Promise化 bluebird地址:https://github.com/petkaantonov/bluebird

添加依赖:

"bluebird":"latest"

修改redis.js文件:

const redis = require("redis");

const RedisOptions = require('./conf/localredis');//redis配置文件

const client = redis.createClient(RedisOptions.redis);

/*-------------Promise化Redis-------*/

const bluebird = require("bluebird");

bluebird.promisifyAll(redis.RedisClient.prototype);

bluebird.promisifyAll(redis.Multi.prototype);

/*---------------------------------*/

client.on("error", function (err) {

console.log("Error " + err);

});

client.hmset('myname', { name:'msq', truename: 'mashouqun ' }, function(err) {

console.log(err)

});

client.expire('myname',15);

redis.client = client;

module .exports = redis;

这样路由可以写成:

router.get('/redistest2', (req, res, next)=> {

redis.client.multi().hgetall('myname').execAsync()

.then(r=>{

res.json(r);

})

});

router.get('/redistest3', (async(req, res, next)=> {

let r =  await redis.client.mutli().hgetall('myname').execAsync();

res.json(r);

}));

相关文章

网友评论

    本文标题:6、Express 使用redis读写数据并Promise化

    本文链接:https://www.haomeiwen.com/subject/phguattx.html