Contents
- 1 nodejs连接redis模块
- 1.1 redis的使用
- 1.2 实现图形验证码
- 1.3 总结
nodejs连接redis模块
redis的使用
- 安装
redis
模块
npm install redis --save
- 进行redis的一些配置
module.exports = {
redis:{
url:'localhost',
port:6379,
password:'123456'
}
}
上述配置中,url
是redis服务
的地址。port
是redis服务
的端口号,这里是默认端口,password
是redis
的密码。
- 编写redis工具函数
内容太多了,具体看代码及注释吧。
代码语言:javascript复制const redis = require('redis');
const config = require('./keys').redis
const client = redis.createClient(config.port, config.url); // 实例redis对象
//连接错误处理
client.on("error", err => {
console.log('redis connect err', err);
});
client.on('connect', () => {
console.log('redis connect success');
})
//验证redis
client.auth(config.password);
const redisHelper = {};
/**
* redisHelper setString function
* @param key
* @param value
* @param expire
*/
redisHelper.setString = (key, value, expire) => {
return new Promise((resolve, reject) => {
client.set(key, value, function (err, result) {
if (err) {
console.log(err);
reject(err);
}
if (!isNaN(expire) && expire > 0) {
client.expire(key, parseInt(expire));
}
resolve(result)
})
})
}
/**
* redisHelper getString function
* @param key
*/
redisHelper.getString = (key) => {
return new Promise((resolve, reject) => {
client.get(key, function (err, result) {
if (err) {
console.log(err);
reject(err)
}
resolve(result)
});
})
}
module.exports = redisHelper;
- 使用redis
redisHelper.setString(key, value, expire)
设置redis函数
redisHelper.setString('name','w候人兮猗',60 * 3).then((res)=>{
console.log('设置成功')
}).catch((err=>{
console.log('设置失败',err)
}))
redisHelper.getString(key)
获取redis函数
redisHelper.getString('name')
.then(result=>{
return res.json(result)
})
.catch(err=>{
console.log(err)
})
实现图形验证码
- 安装svg-captcha模块
npm install svg-captcha --save
- 使用svg-captcha模块
const svgCaptcha = require('svg-captcha')
const captcha = svgCaptcha.create({
// 翻转颜色
inverse: false,
// 字体大小
fontSize: 36,
// 噪声线条数
noise: 2,
// 宽度
width: 80,
// 高度
height: 30,
});
captcha就是生成的验证码实例 – 将验证码保存至redis
代码语言:javascript复制 redisHelper.setString(email, captcha.text.toLowerCase(), effectTime).then(result => {
if (result) {
res.setHeader('Content-Type', 'image/svg xml');
res.write(String(captcha.data));
res.end();
}
}).catch(err => {
console.log(err);
return res.json({
...MsgUtil.createWarnMsg('验证码获取失败')
})
})
- 查看结果
使用
postman
调我们写好的接口
查看redis中
总结
简单的写了一下node
如果使用redis
以及如何生成图形验证码
。主要目的是为了在设计登陆注册的时候有图形验证码可以简单防止频繁的刷登陆注册接口。将验证码存于redis中主要是因为redis是一个key-value
类型的缓存。用完即删除,十分适用于这样的临时存值的需求