最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs中使用captchapng模塊生成圖片驗(yàn)證碼

 更新時(shí)間:2017年05月18日 08:51:32   作者:興哥  
本篇文章主要介紹了Nodejs中使用captchapng模塊實(shí)現(xiàn)圖片驗(yàn)證碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

Nodejs項(xiàng)目,在做圖片驗(yàn)證碼的時(shí)候遇到了難題。Nodejs沒(méi)有圖片庫(kù),以后會(huì)有,但是現(xiàn)在沒(méi)有。

網(wǎng)絡(luò)上搜索一圈,有幾個(gè)解決方案:

1、采用第三方驗(yàn)證碼程序,有的時(shí)候,項(xiàng)目可能不允許;

2、使用Java或者PHP生成圖片,Nodejs調(diào)用,中間采用Redies共享;

這兩種方式都不太理想,好在終于找到了可以支持Nodejs圖片驗(yàn)證碼的一個(gè)庫(kù),雖然只支持?jǐn)?shù)字,但是也還不錯(cuò)。原理是使用Base64的圖片編碼方式。

這個(gè)庫(kù)的Gighub地址是:https://github.com/GeorgeChan/captchapng

使用方法這個(gè)主頁(yè)上都有,這里還是補(bǔ)充一下:

1、在Node項(xiàng)目的package.json中增加captchapng模塊;

2、使用如下代碼:

/**

 * 圖片驗(yàn)證碼

 * @param req

 * @param res

 * @param next

 */

function randomcodePngController(req , res , next){

  var code = '0123456789';

  var length = 4;

  var randomcode = '';

  for (var i = 0; i < length; i++) {

    randomcode += code[parseInt(Math.random() * 1000) % code.length];

  }

  // 保存到session

  if (null == req.session[sessionConstant.login]) {

    req.session[sessionConstant.login] = {};

  }

  req.session[sessionConstant.login][sessionConstant.randomcode] = randomcode;

  // 輸出圖片

   var p = new captchapng(80,30,parseInt(randomcode)); // width,height,numeric captcha

  p.color(255, 255, 255, 0); // First color: background (red, green, blue, alpha)

  p.color(80, 80, 80, 255); // Second color: paint (red, green, blue, alpha)

  var img = p.getBase64();

  var imgbase64 = new Buffer(img,'base64');

  res.writeHead(200, {

    'Content-Type': 'image/png'

  });

  res.end(imgbase64);

} 

3、給這個(gè)controller寫(xiě)一個(gè)路徑,頁(yè)面就可以直接在img標(biāo)簽里面增加src屬性了。

這樣就搞定了Nodejs的圖片驗(yàn)證碼,希望Nodejs盡快補(bǔ)充缺乏的庫(kù)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋

    node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋

    這篇文章主要介紹了node.js利用socket.io實(shí)現(xiàn)多人在線匹配聯(lián)機(jī)五子棋的操作方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-05-05
  • nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié)

    nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié)

    這篇文章主要介紹了nodejs文件操作模塊FS(File System)常用函數(shù)簡(jiǎn)明總結(jié),對(duì)FS模塊的大部份異步函數(shù)做了介紹,而且用中文注釋,這下用起來(lái)方便了,需要的朋友可以參考下
    2014-06-06
  • Nodejs初級(jí)階段之express

    Nodejs初級(jí)階段之express

    這篇文章主要介紹了Nodejs初級(jí)階段之express的相關(guān)資料,需要的朋友可以參考下
    2015-11-11
  • 基于Express實(shí)現(xiàn)遞歸遍歷文件和CRUD操作

    基于Express實(shí)現(xiàn)遞歸遍歷文件和CRUD操作

    在現(xiàn)代的?Web?應(yīng)用開(kāi)發(fā)中,文件管理是一個(gè)常見(jiàn)而重要的需求,所以本文就來(lái)講講如何利用?Express?框架,在遞歸遍歷文件之后實(shí)現(xiàn)強(qiáng)大的?CRUD?操作,構(gòu)建一個(gè)功能完善的文件管理系統(tǒng),感興趣的可以了解一下
    2023-06-06
  • 使用forever管理nodejs應(yīng)用教程

    使用forever管理nodejs應(yīng)用教程

    這篇文章主要介紹了使用forever管理nodejs應(yīng)用教程,本文介紹了forever的安裝、常用命令等,最有用的莫過(guò)于文件改動(dòng)監(jiān)聽(tīng)并自動(dòng)重啟了,這可以增加開(kāi)nodejs應(yīng)用的效率,需要的朋友可以參考下
    2014-06-06
  • 教你用NodeJs構(gòu)建屬于自己的前端腳手工具

    教你用NodeJs構(gòu)建屬于自己的前端腳手工具

    對(duì)于腳手架我們可能天天都在接觸,像npm包管理工具,vue-cli,webpack…,但是這些腳手架是怎么做出來(lái)的,我們自己能不能做一個(gè)出來(lái)玩玩,下面這篇文章主要給大家介紹了關(guān)于如何利用NodeJs構(gòu)建屬于自己的前端腳手工具的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Node.js實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳示例詳解

    Node.js實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳示例詳解

    這篇文章主要為大家介紹了Node.js實(shí)現(xiàn)大文件斷點(diǎn)續(xù)傳示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 在Node.js應(yīng)用程序中處理大數(shù)的操作指南

    在Node.js應(yīng)用程序中處理大數(shù)的操作指南

    在JavaScript生態(tài)系統(tǒng)中,你可以使用BigInt來(lái)處理大整數(shù),但是,你也可以使用具有類(lèi)似于BigInt功能的第三方庫(kù),本文將是使用BigInt和提供類(lèi)似功能的流行庫(kù)管理大數(shù)的完整指南,我們還將比較第三方庫(kù)的用例、優(yōu)勢(shì)和劣勢(shì)
    2023-06-06
  • 干凈卸載Windows的Node.js環(huán)境的方法

    干凈卸載Windows的Node.js環(huán)境的方法

    這篇文章主要介紹了如何干凈卸載Windows的Node.js環(huán)境的方法,文中通過(guò)圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家刪除Node.js環(huán)境有一定的幫助,需要的朋友可以參考下
    2025-01-01
  • node使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多導(dǎo)致json.parse()解析報(bào)錯(cuò)問(wèn)題

    node使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多導(dǎo)致json.parse()解析報(bào)錯(cuò)問(wèn)題

    這篇文章主要介紹了node使用querystring內(nèi)置模塊解決分頁(yè)返回?cái)?shù)據(jù)太多導(dǎo)致json.parse()解析報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09

最新評(píng)論

饶阳县| 会同县| 延津县| 湟中县| 喀喇沁旗| 深水埗区| 紫阳县| 海林市| 云阳县| 石阡县| 松滋市| 天全县| 台南县| 莱州市| 宜春市| 万盛区| 巨野县| 锡林浩特市| 鄱阳县| 太湖县| 方城县| 大城县| 璧山县| 东乌珠穆沁旗| 重庆市| 旬阳县| 将乐县| 宁安市| 金溪县| 兴文县| 东港市| 南丹县| 渑池县| 平昌县| 台东市| 梅河口市| 弋阳县| 当阳市| 南城县| 淮阳县| 利津县|