# get-shorty

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

Latest version **0.1.0** (published 2013-12-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install get-shorty
pnpm add get-shorty
yarn add get-shorty
bun add get-shorty
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.0 |
| Published | 2013-12-09 |
| First published | 2013-12-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Known vulnerabilities | 0 (+10 in 2 direct dependencies) |
| Install scripts | no |
| Author | Chris Blanchard |
| Maintainers | cablanchard |
| Keywords | url, shortening, node.js, connect, middleware, express |

## Links

- npm: https://www.npmjs.com/package/get-shorty
- Repository: https://github.com/cblanc/shorty
- Issues: https://github.com/cblanc/shorty/issues
- npm.io page: https://npm.io/package/get-shorty

## Dependencies (3)

- [mongoose](https://npm.io/package/mongoose.md) ~3.8.1
- [underscore](https://npm.io/package/underscore.md) ~1.5.2
- [randomstring](https://npm.io/package/randomstring.md) ~1.0.2

## Alternatives

- [base64url](https://npm.io/package/base64url.md) — 6.1M weekly downloads
- [get-installed-path](https://npm.io/package/get-installed-path.md) — 502.9K weekly downloads
- [@uppy/url](https://npm.io/package/@uppy/url.md) — 185.8K weekly downloads
- [@d3fc/d3fc-shape](https://npm.io/package/@d3fc/d3fc-shape.md) — 16.2K weekly downloads
- [localizer](https://npm.io/package/localizer.md) — 226 weekly downloads

## Recent versions

- 0.1.0 (latest) — 2013-12-09

## README

# Shorty

![Shorty](example/shorty.jpg)

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

---
_Source: https://npm.io/package/get-shorty · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
