recherche
Maisoninterface Webtutoriel CSSLaisse faire un générateur de code QR avec une fonction sans serveur!

Faisons un générateur de code QR avec une fonction sans serveur!

Le code QR est amusant, non? Nous les aimons, puis les détestons, puis les aimons. Quoi qu'il en soit, ils redeviennent populaires ces derniers temps, ce qui me fait réfléchir à la façon dont ils sont fabriqués. Il existe d'innombrables générateurs de code QR sur le marché, mais supposons que vous devez générer des codes QR sur votre propre site Web. Bien que certains packages puissent le faire, ils sont généralement énormes (par exemple, 180 Ko) et contiennent tout ce dont vous avez besoin pour générer un code QR. Il n'est pas idéal de fournir des services avec d'autres scripts sur le site Web.

Le concept de fonctions cloud fournit une solution élégante à ce problème. Les fonctions cloud résident sur le serveur et sont appelées uniquement en cas de besoin, similaires à une petite API.

Certains hôtes fournissent des fonctions de fonction cloud, DigitalOcean en fait partie! Comme les gouttelettes, le déploiement des fonctions est également assez facile.

Créer un dossier de fonction localement

DigitalOcean fournit une commande CLI qui peut créer un cadre de projet pour nous. Accédez au répertoire où vous souhaitez définir le projet et exécuter:

 <code>doctl serverless init --language js qr-generator</code>

Veuillez noter que la langue est explicitement déclarée. La fonction DigitalOcean prend également en charge PHP et Python.

Nous obtenons un projet propre appelé QR-Generator avec un dossier A / Packages qui contient toutes les fonctions du projet. Il y a un exemple de fonction, mais nous pouvons maintenant l'ignorer et créer un dossier QR à côté:

Ce dossier stockera le package QRCODE et notre fonction QR.JS. Alors, allons au répertoire des packages / échantillons / QR et installons le package:

 <code>npm install --save qrcode</code>

Maintenant, nous pouvons écrire la fonction dans un nouveau fichier QR.js:

 const qrcode = requis ('qrcode')

export.main = (args) => {
  return qrcode.todataurl (args.text) .then (res => ({
    En-têtes: {'Content-Type': 'Text / HTML;
    Corps: Args.img == Undefined? <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/?x-oss-process=image/resize,p_40" class="lazy" alt="Faisons un générateur de code QR avec une fonction sans serveur!"> '
  }))
}

if (process.env.test) export.main ({text: "Bonjour"}). puis (console.log)

Le but de ce code est d'introduire le package QRCODE et d'exporter une fonction qui génère essentiellement un PNG Base64<img alt="Laisse faire un générateur de code QR avec une fonction sans serveur!" > Tags comme source. Nous pouvons même le tester dans le terminal:

 <code>doctl serverless functions invoke sample/qr -p "text:css-tricks.com"</code>

Vérifiez le fichier de configuration

Il y a une étape supplémentaire ici. Une fois le projet construit, nous obtiendrons un fichier project.yml qui utilise certaines informations pour configurer les fonctions. Par défaut, le contenu du fichier est le suivant:

 TargetNamespace: ''
Paramètres: {}
Packages:
  - Nom: Exemple
    environnement: {}
    Paramètres: {}
    Annotations: {}
    actes:
      - Nom: Bonjour
        binaire: faux
        principal: ''
        Exécution: «Nodejs: par défaut»
        Web: vrai
        Paramètres: {}
        environnement: {}
        Annotations: {}
        Limites: {}

Avez-vous vu ceux qui sont mis en évidence? packages: name spécifie l'emplacement de la fonction dans le dossier Packages, dans ce cas un dossier nommé échantillon. actions/ name est le nom de la fonction elle-même, c'est-à-dire le nom de fichier. Lorsque nous commençons le projet, le nom par défaut est Hello, mais nous le nommons QR.JS, nous devons donc changer la ligne de Hello à QR avant de continuer.

Déploier des fonctions

Nous pouvons déployer directement à partir de la ligne de commande! Tout d'abord, nous nous connectons à l'environnement Sandbox DigitalOcean pour obtenir l'URL en temps réel pour les tests:

 ## Vous avez besoin d'une API DOCK Doctl Sandbox Connect

Nous pouvons maintenant déployer la fonction:

 Doctl Sandbox Deployer QR-Generator

Une fois le déploiement terminé, nous pouvons accéder à la fonction via l'URL. Qu'est-ce que l'URL? Il y a une commande pour l'obtenir:

 doctl sbx fn obtient un échantillon / qr --url
https://faas-nyc1-2ef2e6cc.doserverless.co/api/v1/web/fn-10a937cb-1f12-427b-aadd-f43d0b08d64a/sample/qr

merveilleux! Nous n'avons plus besoin de publier l'intégralité du package avec d'autres scripts! Nous pouvons accéder à cette URL et générer le code QR à partir de là.

Démo

Nous obtenons l'API, c'est tout!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Deux images et une API: tout ce dont nous avons besoin pour recolorer les produitsDeux images et une API: tout ce dont nous avons besoin pour recolorer les produitsApr 15, 2025 am 11:27 AM

J'ai récemment trouvé une solution pour mettre à jour dynamiquement la couleur de toute image de produit. Donc, avec un seul produit, nous pouvons le colorer de différentes manières pour montrer

Actualités hebdomadaires de la plate-forme: impact du code tiers, contenu mixte passif, pays avec les connexions les plus lentesActualités hebdomadaires de la plate-forme: impact du code tiers, contenu mixte passif, pays avec les connexions les plus lentesApr 15, 2025 am 11:19 AM

En cette semaine, le Roundup, Lighthouse met en lumière les scripts tiers, les ressources en insécurité seront bloquées sur des sites sécurisés et de nombreuses vitesses de connexion de pays

Options pour héberger vos propres analyses non-javascriptOptions pour héberger vos propres analyses non-javascriptApr 15, 2025 am 11:09 AM

Il existe de nombreuses plates-formes d'analyse pour vous aider à suivre les données des visiteurs et d'utilisation sur vos sites. Peut-être plus particulièrement Google Analytics, qui est largement utilisé

C'est tout dans la tête: gérer la tête de document d'un site alimenté par réact avec un casque ReactC'est tout dans la tête: gérer la tête de document d'un site alimenté par réact avec un casque ReactApr 15, 2025 am 11:01 AM

Le chef de document n'est peut-être pas la partie la plus glamour d'un site Web, mais ce qui y va est sans doute tout aussi important pour le succès de votre site Web que son

Qu'est-ce que Super () dans JavaScript?Qu'est-ce que Super () dans JavaScript?Apr 15, 2025 am 10:59 AM

Qu'est-ce qui se passe quand vous voyez un JavaScript qui appelle super () ?. Dans une classe d'enfants, vous utilisez super () pour appeler le constructeur et le super. pour accéder à son

Comparaison des différents types de popups JavaScript natifsComparaison des différents types de popups JavaScript natifsApr 15, 2025 am 10:48 AM

JavaScript possède une variété d'API popup intégrés qui affichent l'interface utilisateur spéciale pour l'interaction utilisateur. Fameusement:

Pourquoi les sites Web accessibles sont-ils si difficiles à construire?Pourquoi les sites Web accessibles sont-ils si difficiles à construire?Apr 15, 2025 am 10:45 AM

L'autre jour, je discutais avec des gens frontaux sur les raisons pour lesquelles tant d'entreprises ont du mal à créer des sites Web accessibles. Pourquoi les sites Web accessibles sont-ils si durs

L'attribut `` caché 'est visiblement faibleL'attribut `` caché 'est visiblement faibleApr 15, 2025 am 10:43 AM

Il y a un attribut HTML qui fait exactement ce que vous pensez qu'il devrait faire:

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),