var express = require('express'); var redis = require('redis'); var getRawBody = require('raw-body') var client = redis.createClient(); // express style var app = express.create(); app.set('views', __dirname + '/views'); app.set('view engine', 'ejs'); app.set('foo', 'bar'); app.set('redisClient', client); app.use('/static', express.static(__dirname + '/assets')); app.use(express.query()); app.use(express.cookieParser('webjs')); app.use(express.session({ secret: 'webjs', maxAge: 5 * 60 * 1000 })); app.use(express.compiler({ enable: [ 'less' ] })); app.use(express.compress()); app.use(function(req, res, next) { getRawBody(req, { length: req.headers['content-length'], limit: '1mb', encoding: 'utf8' }, function (err, string) { if (err) return next(err) req.body = string next() }) }) app.get('/', function(req, res) { res.send('Hello World!'); }); app.get('/echo/:msg', function(req, res) { res.send(req.params.msg); }); app.get('/view/:view', function(req, res) { res.render(req.params.view, { view: req.params.view }); // /view/foo => render /views/foo.ejs }); app.get('/get/:key': function(req, res, next) { app.get('redisClient').get(req.params.key, function(err, value) { if (err) { return next(err); } value = value || 'no such key'; res.send(value); }); } }); app.put('/set/:key', function(req, res, next) { app.get('redisClient').set(req.params.key, req.body, function(err) { if (err) { return next(err); } res.send('OK'); }); }); app.post('/incr/:key', function(req, res, next) { app.get('redisClient').incr(req.params.key, function(err, currValue) { if (err) { return next(err); } res.send(currValue); }); }) app.post('/append/:key', function(req, res, next) { app.get('redisClient').append(req.params.key, req.body, function(err, length) { if (err) { return next(err); } res.send(length); }); }); app.listen(8080);