Nodejs 、 express中使用第三方模板svg-captcha实现服务端生成验证码

1.安装node、express、svg-captcha

npm install --save svg-captcha  //安装 svg-captcha
npm install -g cnpm --registry=https://registry.npm.taobao.org  //安装 express
//node在官网上下载

2.使用方法

var svgCaptcha = require('svg-captcha');
//引入svg-captcha
var c = svgCaptcha.create();
//创造一个对象储存数据
// {data: '', text: 'abcd'}
在 express中使用

var svgCaptcha = require('svg-captcha');
//引入svg-captcha
app.get('/captcha', function (req, res) {
//调用express方法,当访问/captcha时,执行函数。
    var captcha = svgCaptcha.create();
        //创造对象储存数据
    req.session.captcha = captcha.text;
    //在session中开辟内存储存数据
    res.type('svg');
        //修改 Content-Type 头信息。
    res.status(200).send(captcha.data);
        //修改响应状态信息});

4.参数配置

size: 4 // 验证码长度
ignoreChars: '0o1i' // 验证码字符中排除 0o1i
noise: 1 // 干扰线条的数量
color: true // 验证码的字符是否有颜色,默认没有,如果设定了背景,则默认有
background: '#cc9966' // 验证码图片背景颜色
该函数返回的对象拥有以下属性

data: string // svg 路径
text: string // 验证码文字
svgCaptcha.createMathExpr(options)

和前面的 api 的参数和返回值都一样。不同的是这个 api 生成的 svg 是一个算数式,而 text 属性上
是算数式的结果。不过用法和之前是完全一样的。

svgCaptcha.loadFont(url)

加载字体,覆盖内置的字体。

url: string // 字体文件存放路径 该接口会调用opentype.js同名的接口。 
你可能需要更改一些配置才能让你得字体好看。
详见下面的这个接口:
svgCaptcha.options

这是全局配置对象。 create和createMathExpr接口的默认配置就是使用的这个对象。

除了 size, noise, color, 和 background 之外,你还可以修改以下属性:

width: number // width of captcha
height: number // height of captcha
fontSize: number // captcha text size
charPreset: string // random character preset
svgCaptcha.randomText([size|options])

返回随机字符串

svgCaptcha(text, options)

返回基于text参数生成得svg路径
在 1.1.0 版本之前你需要调用上面的两个接口,但是现在只需要调用 create()
一个接口就行,可以少打几个字了 (^_^)/

补充

npm (node package manage) 是 nodejs的包管理器,用于 node 插件的管理包括 安装、卸载、管理依赖等

使用npm安装插件,语法为; npm install  [-g] [--save-dev]
  2.1   :要管理的插件名称,例如: npm install gulp-less --save-dev
  2.2  -g :全局安装。可选,不加时插件会安装到当前定位目录的node_modules文件夹下。
全局安装的优势是可以在任何地方通过命令行调用。
  2.3 --save:保存配置信息到 package.json文件中。package.json是nodejs项目的配置文件。
  2.4 -dev:保存至package.json 的devDependencies节点,如果不加-dev将会保存至dependencies节点中。
  2.5 为什么要保存至package.json中? 因为node插件包很庞大,所以不加入版本管理,
将配置信息加入package.json中可以指明这些插件需要进行版本管理,
在浏览或其他开发者使用时就能明白应该使用那个版本的插件,
同时用npm intstall 安装时会根据package.json所指定的内容下载所需要的包。
另外,用 npm install --production 只会下载package.json中dependencies节点的包

使用 npm 卸载插件, 语法格式为:npm uninstall  [-g][--save-dev]
  3.1 不要直接本地删除插件包
  3.2 删除全部插件,语法为:npm uninstall gulp-less gulp-gulify gulp-concat ...
  3.3 借助rimraf一次性删除: npm install rimraf -g,用法 rimraf node_modules

使用 npm 更新插件,语法为: npm update  [-g] [--save-dev]
  4.1 更新全部插件:```npm update [--save-dev]

查看 npm 帮助, 语法为:npm help

查看已装插件,语法为: npm list

你可能感兴趣的:(Nodejs 、 express中使用第三方模板svg-captcha实现服务端生成验证码)