short v2.6.0
short
Node.js URL Shortener backed by Mongoose.js
No Callbacks, just Promises!
Installation
$ npm install short
Basic API Usage
Generates a Shortened URL Doc, then retrieves it for demo:
var shortURLPromise
, short = require('../lib/short');
// connect to mongodb
short.connect('mongodb://localhost/short');
short.connection.on('error', function(error) {
throw new Error(error);
});
// promise to generate a shortened URL.
var shortURLPromise = short.generate({
URL : 'http://nodejs.org/'
});
// gets back the short url document, and then retrieves it
shortURLPromise.then(function(mongodbDoc) {
console.log('>> created short URL:');
console.log(mongodbDoc);
console.log('>> retrieving short URL: %s', mongodbDoc.hash);
short.retrieve(mongodbDoc.hash).then(function(result) {
console.log('>> retrieve result:');
console.log(result);
process.exit(0);
}, function(error) {
if (error) {
throw new Error(error);
}
});
}, function(error) {
if (error) {
throw new Error(error);
}
});
Listing all Shortened URLs in DB:
var listURLsPromise
, short = require('../lib/short');
// connect to mongodb
short.connect('mongodb://localhost/short');
short.connection.on('error', function(error) {
throw new Error(error);
});
// promise to retrieve all shortened URLs
listURLsPromise = short.list();
// output all resulting shortened url db docs
listURLsPromise.then(function(URLsDocument) {
console.log('>> listing (%d) Shortened URLS:', URLsDocument.length);
console.log(URLsDocument);
process.exit(0);
}, function(error) {
if (error) {
throw new Error(error);
}
});
Updating the URL or the data fields of an existing Short URL hash
// Basically, update works like this
var updatePromise = short.update(hash, updateData);
// hash => Short url hashcode generated using short.generate()
// updateData => An object consisting of the new URL and/or the new data object.
// If a key already exists in the current data object, it's value is updated,
// otherwise, it is added and saved to the data object
//This function returns a promise which on resolution returns the new updated object as an argument.
Here's some working code. hash
is assumed to be given
// The basic Initialisation, Connection, Short URL generation and
// retrieval remains the same as depicted in previous examples
// the variable hash contains the short url hash code generated using short.generate()
var updatePromise = short.update(hash,{
URL : 'http://www.youtube.com/watch?v=qvsgGtivCgs',
data: {
'type' : 'movie-trailer',
'movie': 'Back To The Future'
}
});
updatePromise.then(function(ShortURLObject) {
console.log('New URL:', ShortURLObject.URL, '\nNew data:', ShortURLObject.data);
}, function(error) {
console.log('Error', error);
});
Contribute
- Fork
- Clone forked repository
- Add some sweet code
- Tests still passing? Run tests with
npm test
- Add a test if adding a feature
- Pull Request
- Instant Karma!
License (MIT)
Copyright (c) 2011-2013, Edward Hotchkiss.
Author: Edward Hotchkiss
8 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
11 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago
13 years ago