\n \n \n\n## 第四步:运行测试\n\n node server.js\n\n打开 http://localhost:3000,输入一个长网址试试。\n\n## 值得注意的事\n\n这个版本数据存在内存里,服务器重启就没了。如果想持久保存,可以用SQLite数据库。另外,真正上线的短链接服务还需要防止恶意使用、添加链接有效期等功能。但作为学习项目,这已经非常棒了。","datePublished":"2026-03-29 10:00:02","dateModified":"2026-03-29 10:00:02","wordCount":3541,"inLanguage":"zh-CN","author":{"@type":"Person","name":"站长","url":"https://woshird.com"},"publisher":{"@type":"Organization","name":"人人都是程序员","url":"https://woshird.com","logo":{"@type":"ImageObject","url":"https://woshird.com/favicon.ico"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://woshird.com/article/url-shortener-tool"},"isPartOf":{"@type":"WebSite","name":"人人都是程序员","url":"https://woshird.com"},"about":{"@type":"Thing","name":"做个网站"},"keywords":"做个网站,,AI编程,做一个URL短链接工具","interactionStatistic":[{"@type":"InteractionCounter","interactionType":"https://schema.org/LikeAction","userInteractionCount":132},{"@type":"InteractionCounter","interactionType":"https://schema.org/ReadAction","userInteractionCount":2924}]}
🌐
🌐
🌐
🌐

做一个URL短链接工具

站长
2026年3月29日 · 阅读 2924 · 点赞 132 · 预计 3 分钟
分享:

为什么需要短链接?

你肯定见过这种超长的网址,复制粘贴的时候经常断掉或者多一个空格就打不开。短链接就是把这种又臭又长的网址变成类似 s.cn/abc123 这样的短地址。

短链接的好处:

  • 分享方便,尤其是在字数有限的地方(比如短信、推特)

  • 看起来干净整洁

  • 可以统计有多少人点击了这个链接
  • 短链接的原理

    原理其实很简单,就像你住酒店。酒店给你一个房间号123,你报房间号就能找到你的房间。短链接也是一样——给每个长网址分配一个短编号,有人访问短链接时,查一下编号对应的长网址,然后跳转过去。

    我们要做什么

    一个最简单的短链接系统需要:

  • 一个页面,用户输入长网址

  • 后端生成短编号,保存对应关系

  • 有人访问短链接时,查找并跳转
  • 我们用Node.js来做后端。

    第一步:初始化项目

    mkdir url-shortener
    cd url-shortener
    npm init -y
    npm install express

    第二步:写后端代码

    创建 server.js:

    var express = require("express");
    var app = express();
    var urls = {}; // 存储短链接和长链接的对应关系
    var counter = 1000;

    app.use(express.json());
    app.use(express.static("public"));

    // 创建短链接
    app.post("/shorten", function(req, res) {
    var longUrl = req.body.url;
    if (!longUrl) {
    return res.json({ error: "请输入网址" });
    }
    var code = (counter++).toString(36);
    urls[code] = longUrl;
    res.json({
    shortUrl: "http://localhost:3000/" + code,
    code: code
    });
    });

    // 访问短链接时跳转
    app.get("/:code", function(req, res) {
    var longUrl = urls[req.params.code];
    if (longUrl) {
    res.redirect(longUrl);
    } else {
    res.status(404).send("链接不存在");
    }
    });

    app.listen(3000, function() {
    console.log("服务器运行在 http://localhost:3000");
    });

    这里用了一个小技巧:把数字转成36进制,这样1000就变成"rs",1001变成"rt",短短两三个字符就能表示很多链接。

    第三步:做前端页面

    创建 public/index.html:




    短链接生成器




    短链接生成器


    粘贴一个长网址,一键变短








    第四步:运行测试

    node server.js

    打开 http://localhost:3000,输入一个长网址试试。

    值得注意的事

    这个版本数据存在内存里,服务器重启就没了。如果想持久保存,可以用SQLite数据库。另外,真正上线的短链接服务还需要防止恶意使用、添加链接有效期等功能。但作为学习项目,这已经非常棒了。

    站长
    人人都是程序员,站长
    分享: