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'); | |