不依赖canvas的Node.js验证码模块captchapng

前端之家收集整理的这篇文章主要介绍了不依赖canvas的Node.js验证码模块captchapng前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://itbilu.com/nodejs/npm/N1wjsIxP.html





试过很多个验证码模块,要么依赖canvas,要么需要编译,使用都不够简单方便。captchapng是一个基于pnglib模块开发,数字型验证码模块。内置字体、全JavaScript无其它依赖,使用非常简单高效,很符合我的使用需求。


1. 模块安装


npminstallcaptchapng--save


2.使用示例

varhttp=require('http');
varcaptchapng=require('captchapng');

http.createServer(function(request,response){
if(request.url=='/captcha.png'){
varp=newcaptchapng(80,30,parseInt(Math.random()*9000+1000));//宽,高,数字验证码
p.color(0,0);//Firstcolor:background(red,green,blue,alpha)
p.color(80,80,255);//Secondcolor:paint(red,alpha)

varimg=p.getBase64();
varimgbase64=newBuffer(img,'base64');
response.writeHead(200,{
'Content-Type':'image/png'
});
response.end(imgbase64);
}elseresponse.end('');
}).listen(8181);

console.log('Webserverstarted.\nhttp:\\127.0.0.1:8181\captcha.png');


3.在Express框架中使用

为了能在项目不同位置使用,我在方法增加了query参数自定义宽高的设置。示例如下:

varcaptchapng=require('captchapng');

exports.captchap=function(req,res,next){
varwidth=!isNaN(parseInt(req.query.width))?parseInt(req.query.width):100;
varheight=!isNaN(parseInt(req.query.height))?parseInt(req.query.height):30;

varcode=parseInt(Math.random()*9000+1000);
req.session.checkcode=code;

varp=newcaptchapng(width,height,code);
p.color(0,0);
p.color(80,255);

varimg=p.getBase64();
varimgbase64=newBuffer(img,'base64');
res.writeHead(200,{
'Content-Type':'image/png'
});
res.end(imgbase64);
}

在前端页面调用方法对应路由即可。

<imgsrc="/checkcode?width=100&height=30"/>

猜你在找的设计模式相关文章