short:Node.js 与 MongoDB结合的开源短域名项目
by nosqlfan
at 2011-09-28 12:30:44
original http://item.feedsky.com/~feedsky/nosqlfan/~8149226/561309000/6253001/1/item.html
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");
项目地址:github.com
| 相关文章: | ||||
![]() MongoDB GridFS介绍PPT两则 |
![]() MongoSpy, MongoWatch及MongoDB数据压缩 |
![]() Reds:一个Redis加Node.js的全文搜索引擎 |
![]() Python调用MongoDB使用心得 |
![]() MongoDB 开发版 1.5.3 发布 |
| 无觅 | ||||
![]()


