traffic-light
Version:
A status traffic light for monitoring your site
27 lines (20 loc) • 771 B
JavaScript
var express = require('express')
var request = require('request')
var color = require('./lib/color')
var app = express()
app.use(express.favicon())
app.get('/:url', function (req, res) {
var url = req.params.url
var start = Date.now()
var timeout = Number.MAX_VALUE
if ('timeout' in req.query) timeout = req.query.timeout
request(url, { timeout : 5000 }, function (err, _res) {
if (!err) {
if('regex' in req.query) err = !_res.body.match(new RegExp(req.query['regex']))
if('not-regex' in req.query) err = _res.body.match(new RegExp(req.query['not-regex']))
}
var dt = timeout - (Date.now() - start)
res.sendfile(__dirname + '/images/' + color(err, _res? _res.statusCode : null, dt) + '.png')
})
})
module.exports = app