get-shorty

Add a URL shortening service to any Express.js app using Shorty middleware

npm install get-shorty
3 downloads in the last month

Shorty

Shorty

Integrate a URL shortening service into any Express.js app using Shorty middleware.

Requirements

  • An Express.js app with express.bodyParser() included above Shorty in the middleware stack
  • Mongoose

Getting Started

Simply require Shorty as part of your Express.js middleware stack passing in the necessary configuration options.

$ npm install get-shorty

var express = require("express"),
    http = require("http"),
    app = express(),
    mongoose = require("mongoose"),
    Shorty = require("get-shorty");

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

app.use(express.bodyParser());
app.use(Shorty());

http.createServer(app).listen(1337);

Using Shorty

Creating a Shortened URL

To create a shortened URL, simply POST a JSON object to your Shorty path (default http://your-hostname.com/shorty) with your URL set as the "URI" property. For example,

{
    "uri": "http://news.ycombinator.com"
}

Accessing a Shortened URL

Visit the shorty path with the given alias and you will be redirected to the stored URL (e.g. http://your-hostname.com/shorty/1dDqd)

Configuration Options

To configure Shorty, pass a configuration object with one or more of the following properties

  • path The route at where the Shorty middleware will reside (default: "shorty")
  • urlLifespan Time to live for each shortened URL created in seconds (default: Links do not expire)
  • collectionName The name of the collection that will store your shortened URLs in MongoDB (default: "Shorty")
  • aliasLength Determines the character length for the alias of each shortened URL (default: 5)

For example,

app.use(Shorty({
    path: "urls",
    urlLifeSpan: 604800         // Redirects expire after a week
    aliasLength: 2                    // Aliases will be 2 characters in length
}));

// Example redirect path

http://your-hostname.com/urls/1D 

License

MIT

Contributions are welcome

npm loves you