Node.js实现短链接(ShortLink):shortid、epxress让URL更简单

文章目录

      • 一、短链接介绍
      • 二、插件介绍
        • 1、epxress
        • 2、shortid
      • 三、实现方案
        • 1、安装依赖:
        • 2、实现原理
      • 四、示例代码
      • 五、测试生产短链接

一、短链接介绍

短链接是指仅包含一个网址的链接形式,通俗一些就是将一个很长很复杂的的网址变成一个简短易记的链接。和长链接不同,长链接往往包含多个网址。短链接具有诸多优势,它不仅能够便捷地实现快速导航,还能有效避免过多重复的网址链接,进而提升网站页面的可访问性。

这样做好处在于:

  • url更加美观;
  • 便于保存和传播;
  • 某些网站内容发布有字数限制,短链接可以节约字数。

短链接的应用场景非常广泛,尤其是在网络营销中。以下是一些常见的应用场景:

  • 邮件营销:在邮件内容中插入短链接,便于用户点击和分享,提高点击率和转化率。
  • 社交媒体营销:在社交媒体上发布内容时,使用短链接可以吸引更多的关注和互动。
  • 广告推广:在广告中插入短链接,可以增加广告的曝光率和点击率,提高广告效果。
  • 内容营销:在文章、图片、视频等内容的下方添加短链接,便于用户分享和传播,同时也可以提高内容的曝光率。
  • 在线购物:在电商网站中,使用短链接可以引导用户到产品页面,增加购买转化率。

需要注意的是,在使用短链接时,需要遵守相关法律法规和隐私政策,确保用户隐私和安全。同时,需要合理控制发送频率和数量,避免过度打扰用户造成反感。

二、插件介绍

1、epxress

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。

  • 安装
npm install express
  • 导入
const express = require('express')
  • 使用
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
2、shortid

ShortID插件是一款非常实用的工具,主要用于在应用程序中生成短格式的唯一标识符。

  • 默认情况下,7-14 URL友好字符:A-Z,a-z,0-9,_-
  • 支持cluster(自动),自定义种子,自定义字母
  • 可以生成任意数量的ID(无重复),甚至每天数百万
  • 应用程序可以重新启动任何次数,而无需重复ID
  • Mongo ID / Mongoose ID的流行替代品
  • 可在Node,io.js和Web浏览器中使用

使用

  • 安装
npm install shortid
  • 引入

CommonJS:

const shortid = require('shortid');

ES模块

import shortid from 'shortid'
  • API

生成唯一的ShortID,默认情况下,生成的ShortID长度为7个字符

const short_id = shortid.generate()

将生成长度为10的ShortID

const short_id = shortid.generate(10)

自定义生成标识符的字符集

const short_id = shortid.characters('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ')

三、实现方案

1、安装依赖:

epxress 启动服务提供接口
shortid 生成唯一短码

npm install express
npm install shortid
2、实现原理
  • 为每个原链接生成不重复的唯一短链接
  • 将原链接和对应短链接成对保存到数据库
  • 访问短链接时,web服务器将目标重定向到对应的原链接

在这里插入图片描述

四、示例代码

这里只是为了演示,没有使用数据库存储。实际项目中你可以存放到数据库中。

//serve.js

import express from 'express'
import shortid from 'shortid'
const app = express()
app.use(express.json())

// 存储短码和url的映射关系
const shortLinks = {
    'fd8xIoDC': {
        url: 'https://blog.csdn.net/shanghai597/article/details/138959931?spm=1001.2014.3001.5501',
    },
    'DDkq0YYh': {
        url: 'https://blog.csdn.net/shanghai597/article/details/138790221?spm=1001.2014.3001.5501',
    },
    'RwE11i_Ec': {
        url: 'https://blog.csdn.net/shanghai597/article/details/138911534?spm=1001.2014.3001.5501',
    },
    'DBWDvt2rkM': {
        url: 'https://blog.csdn.net/shanghai597/article/details/131593381?spm=1001.2014.3001.5502',
    }
}

//生成短码 存入数据库
app.post('/createUrl', async (req, res) => {
    const { url } = req.body
    const short_id = shortid.generate()
    shortLinks[short_id] = { url }
    res.send(`http://localhost:3000/${short_id}`)
})

//重定向
app.get('/:shortUrl', async (req, res) => {
    const short_id = req.params.shortUrl
    const result = shortLinks[short_id].url
    if (result) {
        res.redirect(result)
    } else {
        res.send('Url not found')
    }
})

app.listen(3000, () => {
    console.log('Server is running on port 3000')
})

五、测试生产短链接

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/742898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【大数据技术原理与应用(概念、存储、处理、分析与应用)】第1章-大数据概述习题与知识点回顾

文章目录 单选题多选题知识点回顾几次信息化浪潮主要解决什么问题?信息科技为大数据时代提供哪些技术支撑?数据产生方式有哪些变革?大数据的发展历程大数据的四个特点(4V)大数据对思维方式的影响大数据有哪些关键技术&…

Android10 Settings系列(六)Settings中toolbar 的基本流程,和Activity如何关联,这可能是比较详细的分析

一、前言 写在前面:一个快捷栏,音量浮窗快捷进入设置界面,点击左上角返回键拉起设置首页问题引发的思考和解决方法 事情的起因是测试报了一个问题。在Android9的一个设备在点击音量键时,在弹出的弹框中,点击设置图标快速进入音量设置中,点击左上角返回按钮是,退出当前界…

GPT-5智能新纪元的曙光

在美国达特茅斯工程学院周四公布的采访中,OpenAI首席技术官米拉穆拉蒂被问及GPT-5是否会在明年发布,给出了肯定答案并表示将在一年半后发布。穆拉蒂在采访中还把GPT-4到GPT-5的飞跃描述为高中生到博士生的成长。 这一爆炸性的消息,震动了整体…

期货交易中的几种常见心态管理

期货交易通常涉及到风险和收益的权衡,因此参与者的心态可以显著影响他们的决策和最终结果。以下是一些炒期货的常见心态: 1. 利润最大化心态:持有这种心态的投资者不关心风险,只考虑高利润。他们可能会盲目追求高回报&#xff0…

第26课 绘制原理图——原理图布局的调整

概述 我们可以根据需要,对原理图上各个图元的位置进行调整,让整个电路图的布局更加舒服。 拖动图元 只需按住鼠标左键,即可拖拽图元。 旋转图元 在原理图上时选中一个图元,之后按一次空格键,即可将图元逆时针旋转90…

怎么把avi转换成mp4?超好用的四种转换方法介绍!

怎么把avi转换成mp4?AVI,这个曾经风光一时的视频格式,如今却像是时代的遗珠,被现代科技潮流逐渐边缘化,在数字化飞速发展的今天,AVI面临着严重的兼容性问题,由于它诞生于一个较早的时代&#xf…

Hive笔记-4

240618-Hive笔记-4 4.2 Insert 4.2.1 将查询结果插入表中 1) 语法 INSERT (INTO | OVERWRITE) TABLE tablename [PARTITION (partcol1val1,partcol2val2 ...)] select_stamement; 关键字说明: (1) INTO: 将结果追加到目标表 (2) OVERWRITE: 用结果覆盖原有数据 2) 案例…

热敏电阻阻值和ADC采集值的转换(附10K(3950)案例)

解释:电阻阻值的转换 resistance (float)(10000 * adc_value) / (4096 - adc_value);是根据电压分压原理和ADC的转换公式来的。假设温度传感器和一个10k欧姆的电阻串联,两端接5V电源,那么温度传感器的电阻值和输出电压之间有如下关系&#…

Cell强势开启真菌组研究新篇章

人体消化系统中居住着各种各样的微生物,包括细菌、古菌、病毒和真菌。除了肠道细菌外,肠道真菌也是肠道健康微生物群的重要组成部分,过去10多年的微生态研究主要聚焦在细菌/古菌,真菌还属于暗物质,完全没有系统性认识。…

新媒体矩阵系统是什么?怎么搭建矩阵系统?

目录 前言: 一、新媒体矩阵分别是什么? 1、横向矩阵 2、 纵向矩阵 二、新媒体矩阵的作用? 1、多元化发展,吸引目标 2、多平台协同,放大宣传效果 3、多平台运营,分散风险 三、怎么做矩阵系统&…

多种驱鸟设备,在电力安全中各显神通

多种驱鸟设备,在电力安全中各显神通 鸟类对电力的危险是一个不容忽视的问题,尤其是在电力设施密集的区域。随着人类对自然环境的不断开发和利用,鸟类与电力设施之间的接触也日益频繁,由此引发的安全隐患和事故也屡见不鲜。 具体…

刷题记录6.24

438. 找到字符串中所有字母异位词https://leetcode.cn/problems/find-all-anagrams-in-a-string/ 这道题乍一看感觉很复杂。因为 异位词指由相同字母重排列形成的字符串,包括相同的字符串,那么就会有很多种组成,增加题目的复杂性。 对于这个…

星戈瑞CY5-DBCO在纳米粒子载体标记与追踪中的应用

随着纳米技术的飞速发展,纳米粒子载体在生物医学领域的应用增多。这些载体能够递送药物、基因和其他生物活性分子到特定的细胞或组织。为了有效监测纳米粒子载体在体内的分布、行为以及与生物分子的相互作用,荧光标记技术成为了一个常见工具。其中&#…

要求全国70%中医院设置康复科!康复科门诊服务这样建设!

近日,国家中医药管理局印发《国家中医药管理局关于进一步加强中医医院康复科建设的通知》提出,中医医院应根据当地人口规模及中医药康复服务需求设置康复科并作为独立科室进行建设和管理。有条件的二级以上中医医院应当按照《中医医院康复科推荐配置标准…

Redis-集群-环境搭建

文章目录 1、清空主从复制和哨兵模式留下的一些文件1.1、删除以rdb后缀名的文件1.2、删除主从复制的配置文件1.3、删除哨兵模式的配置文件 2、appendonly修改回no3、开启daemonize yes4、protect-mode no5、注释掉bind6、制作六个实例的配置文件6.1、制作配置文件redis6379.con…

使用Dropout大幅优化PyTorch模型,实现图像识别

大家好,在机器学习模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络时,过拟合具体表现在模型训练数据损失函数较小,预测准确率较高,但是在测…

AI小白的大模型探险之旅:从入门到精通的奇妙旅程

前言 在数字化浪潮汹涌的时代,人工智能(AI)技术如同一位神秘的魔法师,以其强大的力量改变着世界的面貌。而在这魔法世界中,大模型技术无疑是那颗璀璨的明珠,引领着AI技术的新潮流。今天,我们就…

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Semaphore做同步使用

信号量作为同步使用 创建一个Semaphore对象,并指定一个初始的计数值(通常称为“许可”或“令牌”的数量)。这个计数值表示当前可用的资源数量或可以同时访问共享资源的线程数。当一个线程需要访问共享资源时,它会尝试从Semaphore…

Sectigo或RapidSSL DV通配符SSL证书哪个性价比更高?

在当前的网络安全领域,选择一款合适的SSL证书对于保护网站和用户数据至关重要。Sectigo和RapidSSL作为市场上知名的SSL证书提供商,以其高性价比和快速的服务响应而受到市场的青睐。本文将对Sectigo和RapidSSL DV通配符证书进行深入对比,帮助用…

怎么免费SSL证书有效期越来越短了

其实说到SSL证书,很多人的第一印象都是免费SSL证书,主要是由于国内网络发展的历程相对于国外而言较晚,SSL证书的普及程度也远没有国外那么广泛,因此在国内前期的基础SSL证书会由各个云厂商和CA免费提供,之前在国内的一…