node-qrcode二维码生成器完整使用指南
【免费下载链接】node-qrcode qr code generator 项目地址: https://gitcode.com/gh_mirrors/no/node-qrcode
node-qrcode是一个功能强大的二维码生成库,支持在Node.js环境和浏览器环境中生成二维码。该库提供了丰富的配置选项和多种输出格式,可以满足不同场景下的二维码生成需求。
项目概述
node-qrcode是一个基于JavaScript的二维码生成库,具有以下特点:
- 支持服务器端和客户端使用
- 提供命令行工具
- 支持将二维码保存为图片文件
- 支持数字、字母数字、汉字和字节模式
- 支持混合模式
- 支持中文、西里尔文、希腊文和日文字符
- 支持多字节字符(如表情符号)
- 自动生成优化段以实现最佳数据压缩和最小QR码尺寸
快速安装
通过npm可以快速安装node-qrcode:
# 本地安装
npm install --save qrcode
# 全局安装(支持命令行使用)
npm install -g qrcode
基础使用示例
在Node.js中生成二维码
const QRCode = require('qrcode')
// 生成Data URL格式的二维码
QRCode.toDataURL('I am a pony!', function (err, url) {
console.log(url)
})
在浏览器中使用
<canvas id="canvas"></canvas>
<script src="/build/qrcode.js"></script>
<script>
QRCode.toCanvas(document.getElementById('canvas'), 'sample text', function (error) {
if (error) console.error(error)
console.log('success!')
})
核心功能详解
多种输出格式支持
node-qrcode支持多种输出格式,包括PNG、SVG、Data URL和终端显示。
// 保存为PNG文件
QRCode.toFile('path/to/filename.png', 'Some text', {
color: {
dark: '#00F', // 蓝色点
light: '#0000' // 透明背景
}
}, function (err) {
if (err) throw err
console.log('done')
})
// 生成终端显示的二维码
QRCode.toString('I am a pony!', {type: 'terminal'}, function (err, url) {
console.log(url)
})
自定义二维码样式
通过丰富的配置选项,可以创建具有个性化样式的二维码:
const opts = {
errorCorrectionLevel: 'H',
type: 'image/jpeg',
quality: 0.3,
margin: 1,
color: {
dark: '#010599FF',
light: '#FFBF60FF'
}
}
QRCode.toDataURL('text', opts, function (err, url) {
if (err) throw err
var img = document.getElementById('image')
img.src = url
})
高级功能
错误纠正级别
二维码支持不同的错误纠正级别,以适应不同的使用环境:
| 级别 | 错误抵抗能力 |
|---|---|
| L (低) | ~7% |
| M (中) | ~15% |
| Q (四分位) | ~25% |
| H (高) | ~30% |
设置错误纠正级别:
QRCode.toDataURL('some text', { errorCorrectionLevel: 'H' }, function (err, url) {
console.log(url)
})
编码模式
支持多种编码模式以优化数据存储:
- 数字模式:仅包含数字0-9
- 字母数字模式:包含数字、大写字母和特定符号
- 汉字模式:支持Shift JIS系统中的字符
- 字节模式:支持ISO/IEC 8859-1字符集
混合模式
通过混合模式可以优化数据压缩:
var segs = [
{ data: 'ABCDEFG', mode: 'alphanumeric' },
{ data: '0123456', mode: 'numeric' }
]
QRCode.toDataURL(segs, function (err, url) {
console.log(url)
})
命令行工具使用
node-qrcode提供了强大的命令行工具:
# 在终端显示二维码
qrcode "some text"
# 保存为PNG图片
qrcode -o out.png "some text"
# 自定义颜色
qrcode -d F00 -o out.png "some text"
实际应用场景
网页集成
在网页中动态生成二维码:
// 实时生成用户专属二维码
async function generateUserQR(userId) {
const qrUrl = await QRCode.toDataURL(`user:${userId}`)
return `<img src="${qrUrl}" alt="用户专属二维码">`
}
服务端API
使用Express框架构建二维码生成API:
const express = require('express')
const QRCode = require('qrcode')
const app = express()
app.get('/api/qr', async (req, res) => {
const content = req.query.data
const qrBuffer = await QRCode.toBuffer(content)
res.type('png').send(qrBuffer)
})
项目示例
项目中提供了多个实用示例:
- examples/cli.js:命令行使用示例
- examples/server.js:服务器端使用示例
- examples/save.js:保存为文件示例
- examples/clientside.html:客户端使用示例
客户端示例
项目中包含完整的客户端示例,展示了如何在网页中实时生成和显示二维码:
<!-- 客户端二维码生成器 -->
<div class="qrcode-container">
<canvas id="canvas" class="qrcode-image"></canvas>
</div>
技术特性
多字节字符支持
支持UTF-8字符编码,可以生成包含中文、日文、表情符号等复杂字符的二维码。
二进制数据支持
支持直接处理二进制数据:
// 使用Buffer处理二进制数据
QRCode.toFile('foo.png',
[{ data: Buffer.from([253,254,255]), mode: 'byte' }],
function (err) {
if (err) console.error(err)
console.log('QR code saved!')
}
)
总结
node-qrcode是一个功能全面、易于使用的二维码生成解决方案。无论是简单的文本编码还是复杂的个性化定制,都能提供优秀的支持。通过丰富的API和配置选项,开发者可以轻松集成二维码生成功能到各种应用中。
该库的模块化设计和跨平台支持使其成为生成二维码的理想选择。从基础使用到高级定制,node-qrcode都能提供稳定可靠的性能表现。
【免费下载链接】node-qrcode qr code generator 项目地址: https://gitcode.com/gh_mirrors/no/node-qrcode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




