|
|
var fs = require('fs'), path = require('path'), union = require('../../lib'), director = require('director'), favicon = require('./middleware/favicon');
var router = new director.http.Router();
var server = union.createServer({ before: [ favicon(path.join(__dirname, 'favicon.png')), function (req, res) { var found = router.dispatch(req, res); if (!found) { res.emit('next'); } } ] });
router.get('/foo', function () { this.res.writeHead(200, { 'Content-Type': 'text/plain' }); this.res.end('hello world\n'); });
router.post('/foo', { stream: true }, function () { var req = this.req, res = this.res, writeStream;
writeStream = fs.createWriteStream(__dirname + '/' + Date.now() + '-foo.txt'); req.pipe(writeStream);
writeStream.on('close', function () { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('wrote to a stream!'); }); });
router.get('/redirect', function () { this.res.redirect('http://www.google.com'); });
router.get('/custom_redirect', function () { this.res.redirect('/foo', 301); });
router.get('/async', function () { var self = this; process.nextTick(function () { self.req.on('end', function () { self.res.end(); }) self.req.buffer = false; }); });
server.listen(9090); console.log('union with director running on 9090');
|