Spaces:
Sleeping
Sleeping
| 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'); | |