Node.js 如何生成vCard(VCF)联系人文件

Node.js 如何生成vCard(VCF)联系人文件

假设你想要一种简单且受支持的方式来导出联系人。也许这是因为你正在创建一个CRM应用程序,构建一个电子邮件客户端,或者其他任何需要支持和导出联系人项的东西。有一个简单的解决方案:VCF文件。可以创建、编辑和导出联系人作为vCard(或“VCF”)文件供其他设备使用。VCF文件对于在不同系统之间传输联系人非常有用,并为表示联系人和各种潜在属性提供一致的文件格式。

在本文中,我们将解释如何在Node.js中生成自己的VCF联系人文件。

项目设置和模块安装:

步骤1: 使用以下命令创建一个名为“project”的Node.js应用程序:

mkdir Project && cd Project
npm init -y

步骤2: 使用以下命令安装依赖模块:

npm i vcards-js axios

步骤3: 使用以下命令创建 vcard.js 文件:

touch vcard.js

项目结构: 这是项目的初始目录:

Node.js 如何生成vCard(VCF)联系人文件

步骤4: 创建一个单个vCard,设置一些基本属性,并将其保存到文件 vcard.js

vcard.js

let vCardsJS = require('vcards-js'); 
  
// This is your vCard instance, that 
// represents a single contact file 
let vCard = vCardsJS(); 
  
// Set contact properties 
vCard.firstName = "James"; 
vCard.middleName = "Daniel"; 
vCard.lastName = "Smith"; 
vCard.organization = "GeeksforGeeks"; 
vCard.title = "Technical Writer"; 
vCard.email = "james@example.com"; 
vCard.cellPhone = "+1 (123) 456-789"; 
  
// Save contact to VCF file 
vCard.saveToFile(`james.vcf`);

步骤5: 要在vCard中添加自定义个人资料照片,您需要将照片转换为Base64格式,然后使用Base64数据格式进行设置。此示例从URL中获取占位图像,将获取的图像转换为Base64格式,然后将个人资料照片设置为该图像。Base64是一种非常强大的格式,因此很可能将本地图像或来自文件上传的图像转换为Base64,并从那里设置vCard个人资料照片。以下是您可以在浏览器上将上传的图像转换为Base64的方法。

要设置自定义生日,只需将生日属性设置为表示联系人生日的普通JavaScript Date对象。

使用下面的文件名创建以下文件: vcard.js :

vcard.js

let vCardsJS = require('vcards-js'); 
let axios = require('axios'); 
  
(async () => { 
  
  // This is your vCard instance, which 
  // represents a single contact file 
  let vCard = vCardsJS(); 
  
  // Set contact properties 
  vCard.firstName = "James"; 
  vCard.lastName = "Smith"; 
  
  // Add a profile photo by fetching from a URL 
  let image = await axios.get("https://via.placeholder.com/300", 
                             {responseType: 'arraybuffer'});  
  // Convert image to base 64                            
  let imageBase64 = Buffer.from(image.data).toString('base64');  
  
  // Set vCard photo to the base 64 value of the image 
  vCard.photo.embedFromString(imageBase64, 'image/jpeg'); 
  
  // Set birthday using a JavaScript date object 
  vCard.birthday = new Date("July 17, 2004"); 
  
  // Save contact to VCF file 
  vCard.saveToFile(`james-with-photo-and-birthday.vcf`); 
})();

运行应用的步骤:

要运行此程序,请运行以下命令:

node vcard.js

输出: 我们程序的输出和结果是在项目目录中创建了一个新的vCard,其内容如下:

BEGIN:VCARD   
VERSION:3.0   
FN;CHARSET=UTF-8:詹姆斯·史密斯   
N;CHARSET=UTF-8:史密斯;詹姆斯;;;   
BDAY:20040717   
PHOTO;ENCODING=b;TYPE=image/jpeg:iVBORw0KGgoAAAANSUhEUgAAASwAAAEsBAMAAACLU5NGAAAAG1BMVEXMzMyWlpacnJyqqqrFxcWxsbGjo6O3t7e+vr6He3KoAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD90lEQVR4nO3cwW+bSBQH4AcGw5HnJDhHaN3dHO1su9ojNGnPtrUb7dFuIiVHnEo5263Uv3vfGwab1myVA5DV6vcpgeD35HmeGYbJxUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/zOb3N5BRexlu9/Jo+NCQFl/HbWrRK7s6Amcdy3jCfaftyOT/OmsnLxSFqkzu04Ns1Z+RxPOMtUc63fH6U5HP8O5/uo1Vyh9IJhTylwSjz0pV0y4Tex0dJ7iij3ck+WiV3J9RPvVhRLgO5O5V+KOSl7MesnXSRH++jNrlDAWurEW0i6ZOz8jI9mlwaDXkftckd8nXEdgnNVjI2sf6Q+VvLSMiMHJnupHC0j9rkrmlL87Lhs7JK86oM1fowVFq0jdrkjn2QKbMuTEvD8aGsfCQ9th9PbzHeR21yt1KWkUq3et+Tq4tDHpnXfZ67+7Zdltu1itrkbrEuRWVLWdmwHbl0shlXSQ7LLVtFbXLXZUmLphHOHK3IsWVtTg6Lk6PFV1Gb3G1Z9I1Xjb015NpSHq7jfntL7reoaW7JhD+pJQ2537llVuyGO1Em17iWJMt7f3ei/zeZcdGlKLDr1saW5XPV9F9bM2pV1CZ3yDxDZFx0HZcF0z+s8rpwVcuWPo5k1KqoTe7QwD58mp6Js/PUTn4tVEatx2ei3lAzu4M4t3uErQl5PN3YOb84NR+gitrkDnl8J51QNO23hjLH7SqQxxnp0trbfotmo9t0RE27U9k9hFw2PuBfLnVD0d/u9KMs8hNq2svrxFqXJXprZtmg9riXp5v0jTRI4afyn5lv1X8+gRaQ22XA/zT6sxatkgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD65tjf/5gXLYtHb/8l8kNZkVw5zEwjIjei8ru7rtJ7/YqcO3ISorTFsiLvt+eXZY7xlp5sWd6b7KscrpeZ80DBus2y6D1dviY3C+QP/9WUnGWkp8GrhZa1fE3DQiK1ssYrurdlDeblwZ86TzTctFuWf/dxPihy+kw31+/IuTOnm2v98I6EwoTe1cuKLsLEluVm5cFLHHf7pc2JKIPoZl4STpfFHzSRfnEyc5pQrmVJiO7l13yRHpdlPQ0LW5ZTHSInWN23WZZMedMJycUq0aa1FT1F1dyK6MugoHpvuY903Fv0a9Jqb+n7apesHlY0KSvRU6233CV9V5Z/RsdzixbzlsvSuUXL4nFOT9mVtq2nw9yiYPx9WebCHGt3IrW7yOnby51IuyzPKEgv9M31dLgTKUgayioH+oqrdavlsp5hWPTb3jM9vnQBjZyLl64AAP43/gHVSaMe2vmdiAAAAABJRU5ErkJggg==   
REV:2022-02-27T19:04:38.635Z   
END:VCARD 

这个vCard文件存储为 james-with-photo-and-birthday.vcf 字样指定的文件中。

结论: vCards和VCF文件可以成为任何基于联系人的应用程序的重要组成部分。使用vcards-js,在Node中生成和保存vCard/VCF文件非常简单。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程