diff --git a/net/Http.js b/net/Http.js index dc05260..5ba49d5 100644 --- a/net/Http.js +++ b/net/Http.js @@ -1,48 +1,68 @@ +"use strict"; + var cl = global.botanLoader; var Dragonfly = global.Dragonfly; var Cookie = cl.load( "botanss.net.components.Cookie" ); -var HTTP = function( req, res ) +class CResponse { - var _self = this; - var canExit = true; + constructor( res ) + { + this.raw = res; + this.canExit = true; - // Simple HTTP Model - this.response = { - statusCode: 200 - , headers: { + this.statusCode = 200; + this.headers = { "Content-Type": "text/html; charset=utf-8" , "Powered-By": "Botanical Framework (Node.js)" - } - , write: function( str ) { _self.response.content = str } - , writeLine: function( str ) { _self.response.content += str + "\n"; } - , end: function() + }; + + this.content = ""; + this.cookie = new Cookie( "", this ); + } + + + end() + { + if( this.canExit ) { - if( canExit ) - { - canExit = false; + this.canExit = false; - var rc = _self.response; - - res.writeHead( rc.statusCode, rc.headers ); - res.end( rc.content ); - } + console.log( this.content ); + this.raw.writeHead( this.statusCode, this.headers ); + this.raw.end( this.content ); } - , content: '' - , cookie: new Cookie( "", this ) - , raw: res - }; + } - this.request = { - uri: require('url').parse( req.url ) - , isPost: ( req.method == 'POST' ) - , cookie: new Cookie( req.headers.cookie, this ) - , remoteAddr: req.connection.remoteAddress - , raw: req - }; + write( str ) { this.content = str } + writeLine( str ) { this.content += str + "\n"; } -}; +} +class CRequest +{ + get isPost() { return this.raw.method == 'POST'; } + get remoteAddr() { return this.raw.connection.remoteAddress; } -module.exports = HTTP; + constructor( req ) + { + this.raw = req; + this.uri = require('url').parse( req.url ); + this.cookie = new Cookie( req.headers.cookie, this ) + } +} + +class Http +{ + constructor( req, res ) + { + var _self = this; + + // Simple Http Model + this.response = new CResponse( res ); + this.request = new CRequest( req ); + } +} + +module.exports = Http;