Skip to content

maduraPradeep/MongooseURLShortener

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

###MongooseURLShortener

Please Share on Twitter if you like #MongooseURLShortener

A simple URL Shortening library for NodeJS using Promises/A+ results.

####Installation

npm install mongoose-url-shortener --save

####API

//Setup Mongoose
var connection = require('mongoose').connect('mongodb:testing');
//Initialize Shortener
var urlShotener = MongooseURLShortener(connection, options);

#####Options { seed:12345, schema: { customSchemaValue:Number, customSchemaObj:{} } } Seed Optional value to use for generating short url's. You must always use the same seed otherwise you will not be able to resolve short urls' back to their original url.

Schema Optional schema properties for the Mongoose object. You can then pass the extra values you define here to be saved along with the URL when shortening or resolving

#####Shorten Shorten will either create a new short url in your database or resolve to a previously shortened URL.

url = 'http://www.google.com';
data = { 'any data you want to record with the short url' : true }
var promise = urlShortener.shorten(url, data);
promise.then(function(url){
    console.log(url.hash);
    //aGasjn1Ho
}).fail(function(err){
    console.error('Error creating short url', err);
});

#####Resolve Resolve will return the original URL before shortening if one is available in the database.

hash = 'aGasjn1Ho';
data = {ip:'127.0.0.1'};
var result = urlShotener.resolve(hash, data);
result.then(function(url){
console.log(url );
// { 
//    type: 'MongooseURLShortener', 
//    url: 'http://www.google.com', 
//    hash:'aGasjn1Ho',
//    hits:{
//        {ip:'127.0.0.1},
//        {ip:'127.0.0.1},
//    },
//    totalHits: 2
//}
}).fail(function(err){});

data is an optional object you would like to be saved with each resolution of a URL and can be used for such things as analytics tracking.

Check out NodeTinyUrl for a working implementation

Please Share on Twitter if you like #MongooseURLShortener

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%