[英]How can I generate QR images in Node.js without canvas?
我正在用 Node.js 為客戶建立一個網站,我需要為票務系統生成二維碼或條形碼。
我找到了一些模塊,但它們都需要像畫布這樣的安裝,以一種或另一種方式。
我在共享主機包上,我的主機不允許我安裝任何此類包,除非我升級到 VPS 或專用服務器(我沒有錢)。
你們有沒有人知道我如何在 Node.js 中實現這一點,或者我是否需要建立一個子域來在 PHP 或前端生成中生成 QR(我根本不喜歡)?
目前使用:
找到的模塊:
看看這段代碼:
var qr = require('qr-image');
var express = require('express');
var app = express();
app.get('/', function(req, res) {
var code = qr.image(new Date().toString(), { type: 'svg' });
res.type('svg');
code.pipe(res);
});
app.listen(3000);
您可以使用qr-image它是一個完整的 JavaScript 解決方案,它使用 Buffers 生成以下格式的二維碼:png、svg、eps 和 pdf 格式
就我而言,我做了以下操作,請參閱qrcode以獲取更多信息。
const qrcode = require('qrcode');
const qrOption = {
margin : 7,
width : 175
};
const qrString = 'QR_STRING';
const bufferImage = await qrcode.toDataURL(qrString,qrOption);
console.log(bufferImage);
嘗試一下
1)npm i qrcode
2)var QRCode = require('qrcode')
3)QRCode.toString('I am a pony!',{type:'terminal'}, function (err,
base64image) {
console.log(base64image)
})
這是關於如何實現這一目標的另一個建議。 您只需要獲取 QRCode 的url
並將其分配給 html 中的img
標簽源。 可以使用node-qrcode
的toDataUrl()
api 來做到這一點。
這是定義:
toDataURL(text, [options], [cb(error, url)])
返回包含二維碼圖像表示的數據 URI。 如果提供,canvasElement 將用作畫布來生成數據 URI。
canvasElement
類型:DOMElement Canvas 繪制二維碼的位置。
text
類型:字符串|數組 要編碼的文本或描述段的對象列表。
options
type
類型:
String
默認值:image/png
數據 URI 格式。 可能的值為:image/png, image/jpeg, image/webp
。
rendererOpts.quality
類型:
Number
默認值:0.92
一個介於0
和1
之間的數字,如果請求的類型是image/jpeg
或image/webp
則表示圖像質量。
cb
類型:Function 完成時調用的回調函數。
所以為了顯示neo QRCode,我建議你根據文檔這樣做:
const fs = require('fs');
const path = require('path');
const express = require('express');
const router = module.exports = express.Router()
const QRCode = require('qrcode')
router.get('/', (req, res) => {
QRCode.toDataURL('Hello World !').then(url => {
res.send(`
<h2>QRCode Generated</h2>
<div><img src='${url}'/></div>
`)
}).catch(err => {
console.debug(err)
})
});
編碼🖖
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.