当前位置: 首页 > news >正文

【Node.js】短链接

原文链接:Nodejs 第六十二章(短链接) - 掘金 (juejin.cn)

短链接是一种缩短长网址的方法,将原始的长网址转换为更短的形式。短链接的主要用途之一是在社交媒体平台进行链接分享。由于这些平台对字符数量有限制,长网址可能会占用大量的空间,因此使用短链接可以节省字符数。原理就是使用重定向到原网站。

CREATE TABLE `short` (`id` int NOT NULL AUTO_INCREMENT COMMENT 'Primary Key', `short_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '短码', `url` varchar(255) NOT NULL COMMENT '网址',PRIMARY KEY (`id`)
) 
import knex from 'knex'
import express from 'express'
import shortid from 'shortid'
const app = express()
app.use(express.json())
const db = knex({client: 'mysql2',connection: {host: 'localhost',user: 'root',password: '123456',database: 'short_link'}
})
//生成短码 存入数据库
app.post('/create_url', async (req, res) => {const { url } = req.bodyconst short_id = shortid.generate()const result = await db('short').insert({ short_id, url })res.send(`http://localhost:3000/${short_id}`)
})
//重定向
app.get('/:shortUrl', async (req, res) => {const short_id = req.params.shortUrlconst result = await db('short').select('url').where('short_id', short_id)if (result && result[0]) {res.redirect(result[0].url)} else {res.send('Url not found')}
})app.listen(3000, () => {console.log('Server is running on port 3000')
})

image.png
image.png

http://www.lryc.cn/news/335395.html

相关文章:

  • 详解 Redis 在 Centos 系统上的安装
  • C语言 | Leetcode C语言题解之第17题电话号码的字母组合
  • wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环
  • libVLC 提取视频帧使用QGraphicsView渲染
  • 大厂Java笔试题之判断字母大小写
  • 场景文本检测识别学习 day02(AlexNet论文阅读、ResNet论文精读)
  • 4.9日总结
  • python第四次作业
  • 工业通信原理——Modbus-TCP通信规约定义
  • Vue - 4( 8000 字 Vue 入门级教程)
  • 5.118 BCC工具之xfsslower.py解读
  • Spark编程基础
  • React 状态管理:高效处理数组数据的5种方法
  • SSH和交换机端口安全概述
  • K-means聚类算法的原理、应用与实例
  • 使用SquareLine Studio创建LVGL项目到IMX6uLL平台
  • MATLAB计算投资组合的cVaR和VaR
  • YOLOv7全网独家改进: 卷积魔改 | 变形条状卷积,魔改DCNv3二次创新
  • 使用vue3搭建一个CRM(客户关系管理)系统
  • Linux虚拟内存简介
  • 合并单元格的excel文件转换成json数据格式
  • 云平台和云原生
  • ES6 => 箭头函数
  • vue将html生成pdf并分页
  • 数字社会下的智慧公厕:构筑智慧城市的重要组成部分
  • 比较好玩的车子 高尔夫6
  • 智过网:非安全专业能否报考注安?哪些专业可以报考?
  • 基于Whisper语音识别的实时视频字幕生成 (一): 流式显示视频帧和音频帧
  • STM32+ESP8266水墨屏天气时钟:文字取模和图片取模教程
  • 华为机试题