Skip to content

Instantly share code, notes, and snippets.

@blangue
Last active June 21, 2022 20:29
Show Gist options
  • Save blangue/c025268b3b5906bd08472bb3b571e086 to your computer and use it in GitHub Desktop.
Save blangue/c025268b3b5906bd08472bb3b571e086 to your computer and use it in GitHub Desktop.
URL Shortener micro-service
require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const app = express();
var originalUrls = [];
var urls = [];
var index = 0;
// Basic Configuration
const port = process.env.PORT || 3000;
app.use(cors());
app.use('/public', express.static(`${process.cwd()}/public`));
app.use(bodyParser.urlencoded({extended: false}));
app.get('/', function(req, res) {
res.sendFile(process.cwd() + '/views/index.html');
});
// Save urls
app.post('/api/shorturl/', function(req, res) {
var pass = (req.body.url.includes("http"));
if(!pass) res.json({error: "invalid url"});
originalUrls.push(req.body.url);
urls.push(String(index));
res.json({original_url: req.body.url, short_url: index});
index++;
});
//Access short urls
app.get('/api/shorturl/:url', (req,res)=>{
var newUrl = originalUrls[Number(req.params.url)];
res.redirect(newUrl);
});
app.listen(port, function() {
console.log(`Listening on port ${port}`);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment