short开源的短域名服务

联合创作 · 2023-10-02 02:19

short 是一个开源的短域名服务,使用 Node.js 与 MongoDB 搭建,可以直接在你的 Server 程序中调用,也可以通过 Node.js 的 http server 模块以一个服务启动。


可以直接通过 Node.js 的 npm 进行安装:




$ npm install short


可以直接在你的 Node.js 项目中这样调用,生成长域名对应的短链接:



var mongoose = require("mongoose");
var short = require("short");

mongoose.connect("mongodb://localhost/short");

var URL = "http://nodejs.org/";

short.make(URL, function(error, shortURL) {
if (error) {
console.error(error);
} else {
short.get(shortURL.hash, function(error, shortURLObject) {
if (error) {
console.error(error);
} else {
var URL = shortURLObject[0].URL
var hash = shortURLObject[0].hash;
console.log(URL, hash);
process.exit(1);
};
});
}
});

下面代码用于搭建一个提供短域名跳转的 HTTP 服务:



var http = require("http");
var mongoose = require("mongoose");
var short = require("short");

mongoose.connect("mongodb://localhost/short");

var app = http.createServer(function(request, response) {
var hash = request.url.slice(1);
if (request.url === "/") {
response.writeHead(200, { "Content-Type" : "text/html" });
response.write("URL not found!");
response.end();
} else {
short.get(hash, function(error, shortURLObject) {
if (error) {
console.error(error);
} else {
if (shortURLObject) {
var URL = shortURLObject[0].URL;
response.writeHead(302, {
"Location" : URL
});
response.end();
} else {
response.writeHead(200, { "Content-Type" : "text/html" });
response.write("URL not found!");
response.end();
}
};
});
}
});

app.listen(8080);
console.log("> Open http://localhost:8080/kQ4c");
浏览 15
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报