Que sont les plug-ins nodejs ?

青灯夜游
Libérer: 2021-11-23 17:31:24
original
2139 Les gens l'ont consulté

Les plug-ins Nodejs incluent : "node-xlsx", nodemailer, "node-readbility", connect, "express-session", "basic-auth", bcryptjs, puppeteer, nightmare, etc.

Que sont les plug-ins nodejs ?

L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 12.19.0, ordinateur DELL G3.

plug-in Nodejs

1. Node-xlsx lit et écrit Excel

L'importation et l'exportation d'Excel sont un problème qui se produit dans de nombreux systèmes, et NodeJS ne fait pas exception. lecture et écriture de fichiers Excel

Dans NodeJS, pour réaliser la lecture et l'écriture de fichiers, nous utilisons l'outil tiers module node-xlsx. Ce module prend en charge à la fois le format Excel 2003 (.xls) et le format Excel 2007 (. . Obtenez le fichier Excel

cnpm install node-xlsx --save
Copier après la connexion

Le code ci-dessus a terminé l'opération de lecture du fichier Excel à ce moment, ce que nous lisons est un objet, et les informations peuvent être vues dans la console

Opération d'écriture dans Excel

Maintenant, nous allons montrer comment lire les informations d'une table dans la base de données et les enregistrer sur l'ordinateur local. Le code est le suivant

const xlsx=require('node-xlsx');const DBUtil=require('./utils/DBUtil.js');const fs=require('fs');const path=require('path');function readExcel(path){
  var excel=xlsx.parse(path);
  return excel;}var obj=readExcel(path.join(__dirname,"./files/studentinfo.xls"));console.log(obj[0].data);
Copier après la connexion

Ici, nous trouvons qu'écrire sur Excel est un peu plus gênant, car ici, nous avons besoin de recombiner les résultats obtenus dans la base de données et de générer Excel

Réflexion

: Et si dans le framework Express, le fichier Excel généré était le suivant pour que les utilisateurs puissent le télécharger et l'enregistrer localement ?

2. L'envoi d'e-mails par nodemailer

nodejs est également utilisé dans de nombreux scénarios pour envoyer des e-mails aux utilisateurs. Par exemple, nous voyons souvent qu'après l'inscription d'un utilisateur, des informations d'inscription seront envoyées à l'utilisateur Go. à l'adresse e-mail enregistrée. À ce stade, si nous voulons compléter cette fonction, nous devons utiliser un module tiers de nodemailer. Les étapes spécifiques sont les suivantes : Installer le module correspondant

const excel=require('node-xlsx');const fs=require('fs');const path=require('path');const DBUtil=require('./utils/DBUtil.js');function writeExcel(){
  var conn=DBUtil.getConn();
  conn.query("select * from studentinfo",[],(err,result)=>{
    if(err){

    }
    else{
      var excelArr=[];
      var headerRow=[];
      for(var i in result[0]){
        headerRow.push(i);
      }
      excelArr.push(headerRow);
      for(var i=0;i<result.length;i++){
        var temp=[];
        for(var j=0;j<headerRow.length;j++){
          temp.push(result[i][headerRow[j]]);
        }
        excelArr.push(temp);
      }
      try {
        var buff=excel.build([{name:&#39;学生信息&#39;,data:excelArr}]);
        fs.writeFileSync(path.join(__dirname,"./files/01.xlsx"),buff);
        console.log("ok");
      } catch (error) {
        console.log(err);
      }
    }
  });
  conn.end();}writeExcel();
Copier après la connexion

Importer le module, complétez le code

$ cnpm install nodemailer --asve
$ yarn add nodemailer
Copier après la connexion
Envoyer les informations après succès
const nodemailer=require(&#39;nodemailer&#39;);var transport = nodemailer.createTransport({
  service:"qq",
  auth:{
    user:"365055754@qq.com",
    pass:"peshapwpokgvcahe"
  }});var options={
  from:"365055754@qq.com",
  to:"lovesnsfi@live.com",
  subject:"这是一封来自nodemailer发送的邮件信息",
  text:"这是一封来自nodemailer发送的邮件信息"+(new Date()).toLocaleString(),
  html:"<h2>这是一封来自<u>nodemail</u>的测试邮件···</h2>"};transport.sendMail(options,(err,info)=>{
  if(err){
    console.log(err);
  }
  else{
    console.log(info);
  }});
Copier après la connexion
À ce stade, tant que le programme peut terminer notre demande d'envoi à cet endroit, il renverra les informations ci-dessus. Si nous ne voyons pas les informations ci-dessus, nous en avons besoin. pour vérifier l'erreur renvoyée à cet endroit Information

Explication

: Lors de la configuration du serveur d'envoi, nous pouvons utiliser un serveur tiers ou un serveur intégré

Réflexion

: Si le contenu envoyé est remplacé par un modèle

{ accepted: [ 'lovesnsfi@live.com' ],
  rejected: [],
  envelopeTime: 221,
  messageTime: 830,
  messageSize: 801,
  response: '250 Ok: queued as ',
  envelope: { from: '365055754@qq.com', to: [ 'lovesnsfi@live.com' ] },
  messageId: '<2fbef9f1-1041-fd59-1111-0b987e8d81da@qq.com>' }
Copier après la connexion

Le code ci-dessus encapsule le contenu de l'e-mail à envoyer dans un objet, puis utilise la syntaxe du modèle pour assembler les chaînes

Réflexion : Pour le contenu de l'e-mail ci-dessus, nous l'écrivons dans un fichier txt externe séparé, et puis utilisez String Comment implémenter cette fonction en remplaçant l'objet ?

3. child_process

peut créer des processus enfants et exécuter des scripts shell.

4. node-readbilityUn plug-in qui peut transformer le contenu d'un site Web en contenu simple.

5. connect En fait, express utilise également ce plug-in, et vous pouvez également écrire des programmes Web en utilisant connect.

6. express-sessionIl s'agit d'un plug-in qui utilise des sessions. La valeur par défaut est éternelle, ce qui est différent de Tomcat 30 minutes, vous devez donc définir le délai d'attente vous-même.

7. Le plug-in basic-auth est utilisé pour la méthode d'authentification la plus simple et est généralement utilisé pour les requêtes API.

8. Le plug-in bcryptjs (une erreur est toujours signalée lors du processus d'installation de bcrypt) est utilisé pour effectuer un traitement de hachage à l'aide du salage.

9. Collection de reptiles : (1) Exploration de pages statiques et de données API : request+cheerio/jsdom request est une bibliothèque de requêtes qui peut demander des publications et obtenir des informations. une bibliothèque d'analyse tierce à analyser, telle que cheerio. Pour les pages de rendu dynamique js, vous pouvez envisager d'utiliser jsdom, mais malheureusement, c'est synchrone et ce n'est pas un navigateur après tout.

(2) Exploration de pages rendues dynamiquement

puppeteer : Grâce au navigateur chromiun, les requêtes asynchrones sont très efficaces et de nombreuses API pour faire fonctionner le navigateur sont ouvertes, ce qui est très pratique.

cauchemar

 : L'API est très pratique à utiliser. Utilisez le navigateur en électronique Bien que je ne l'ai jamais utilisé, j'ai l'impression que ce n'est pas aussi flexible que le marionnettiste.

jsdom

 : La synchronisation m'a fait renoncer à l'utiliser. Identique au sélénium.

10、moment.js

Il s'agit d'une bibliothèque d'analyse de format légère. Si vous écrivez vous-même la fonction d'analyse de format, vous aurez besoin de plusieurs dizaines de lignes de code de fonction. C'est très pratique à utiliser.

Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel Nodejs ! !

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!