专业的短链接生成工具
链接域名
短网址有效期
开发者生成的短链接平台的使用问题
更新时间:2025-5-4 09:39:50 作者:爱短链
前段时间,我在开发公众号的时候,有个功能需要生成一个带有网页授权和认证地址的二维码,但是像下面这样的Urls连看看#wechat_redirect
用这个地址生成的二维码也是密密麻麻的。虽然不影响微信长按扫码,但是一旦二维码缩小一点,图片马上就会模糊,相机很难直接扫码。
在这种情况下,我们自然会认为,如果我们使用短链接平台来减少url的字符,生成的代码自然会变得更容易识别,同时url会更漂亮,更容易转发目前市面上有微博和一些第三方的短链接生成工具,但是这两类工具在使用中存在一些问题,比如:目前的规则是会有一个不会直接跳转的跳转页面,由于第三方工具是公共平台,有时可能会因为一些不良信息导致整个平台无法访问。
我们不这样做,而是自己实现一个短链接平台。实现短链接平台的原理也很简单。得到两部分就够了:1.保存长链接和短链接的对应关系。 2.通过短链接查询长连接并重定向。
为了效率,我这里用的是node和mongodb葡萄城为开发者开发者生成短链接平台的使用问题,我们开始吧。
首先,让我们创建一个 express 项目
express -e demo change directory: > cd demo install dependencies: > npm install run the app: > SET DEBUG=demo:* & npm start
然后进入demo目录,安装express必要的依赖
npm install
同时通过npm安装我们需要使用的mongoose和shortid以及body-parser
npm install mongoose npm install shortid npm install body-parser
以下是使用的三个包的简要说明:
首先设置MongoDB的连接信息
module.exports = { mongo_base_connection_url: \'mongodb://localhost:27017\', mongo_db: \'mongodb://localhost:27017/shorturl\', mongo_options: { autoReconnect: true, keepAlive: true, reconnectTries: 50, reconnectInterval: 1000, connectTimeoutMS: 5000000, } } console.log("Connection local mongo db");
数据库模型定义
因为我们的对应关系是通过短链接查询长连接短链接,所以这里我们主要存储短链接和长链接。此外,您还可以根据自己的需要添加链接点击统计等字段,方便后期统计。
var mongoose = require(\'mongoose\'); var Schema = mongoose.Schema;var urlSchema = new Schema({ shortUrl: String, longUrl: String }); module.exports = mongoose.model(\'UrlTable\', urlSchema);
定义快速路线
因为我们在这个应用中只有生成和重定向两个功能,所以这里只有两个页面可以做所有的工作。
var index = require(\'./routes/index\'); var url = require(\'./routes/url\'); app.use(\'/\', index); app.use(\'/url\', url);
生成短链接页面
const express = require("express"); const router = express.Router(); const shortId = require(\'shortid\'); const UrlTable = require(\'../models/urltable\'); const mongoose = require(\'mongoose\'); var setup = require(\'../dbconfig/db\'); router.post(\'/\', function(req, res, next) { var params = req.body; var url = params.longUrl; shortId.characters(\' 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ^*\') var shortid = shortId.generate(); var objurl = { shortUrl: shortid, longUrl: url}; mongoose.connect(setup.mongo_db, setup.mongo_options); UrlTable.create(objurl, function (err, objurl) { //if (err) console.log(err); res.send("http://localhost:3000/" + shortid); }); return; });
指定生成shortId字符的范围并生成:
shortId.characters(\'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\')
var shortid = shortId.generate();
为数据库构建兼容的数据模型:
var objurl = { shortUrl: shortid, longUrl: url};
最后连接数据库,将短链接结果保存回客户端:
mongoose.connect(setup.mongo_db, setup.mongo_options);
UrlTable.create(objurl, function (err, objurl) {
//if (err) console.log(err);
以上就是关于《开发者生成的短链接平台的使用问题》的全部内容了,感兴趣的话可以点击右侧直接使用哦!》》在线短链接生成器