commit c5e010ffcb899fb806ff8ee621523d5f1280f212 Author: brettlangdon Date: Fri Jul 6 09:11:45 2012 -0400 initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..97ed8ab --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +node_modules +*#*# +*~ +*.log \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..a184989 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +## Response Codes ## + + +### Install +``` +npm install response-codes +``` + +### Usage +``` +var http = require('http'); +require('response-codes'); + +http.createServer( function(req,res){ + switch(req.url){ + case '/': + res.OK('thanks'); + break; + case '/private': + res.UNAUTHORIZED('STAY AWAY!'); + break; + default: + res.NOTFOUND('nothing to see here, move along'); + break; + } +}).listen(1337); + +``` + +This module also works with web frameworks such as Express. + +### Functions + +Functions can be accessed by their name `res.OK('message');` as well as their status code `res[200]('message');` + + * `CONTINUE( message, headers )` + * `SWITCHING_PROTOCOLS( message, headers )` + * `OK( message, headers )` + * `CREATED( message, headers )` + * `ACCEPTED( message, headers )` + * `NON_AUTHORITATIVE_INFORMATION( message, headers )` + * `NO_CONTENT( message, headers )` + * `RESET_CONTENT( message, headers )` + * `PARTIAL_CONTENT( message, headers )` + * `MULTITPLE_CHOICES( message, headers )` + * `MOVED_PERMAMENTLY( message, headers )` + * `FOUND( message, headers )` + * `SEE_OTHER( message, headers )` + * `NOT_MODIFIED( message, headers )` + * `USE_PROXY( message, headers )` + * `TEMPORARY_REDIRECT( message, headers )` + * `BAD_REQUEST( message, headers )` + * `UNAUTHORIZED( message, headers )` + * `PAYMENT_REQUIRED( message, headers )` + * `FORBIDDEN( message, headers )` + * `NOT_FOUND( message, headers )` + * `METHOD_NOT_ALLOWED( message, headers )` + * `NOT_ACCEPTABLE( message, headers )` + * `PROXY_AUTHENTICATION_REQUIRED( message, headers )` + * `REQUEST_TIMEOUT( message, headers )` + * `CONFLICT( message, headers )` + * `GONE( message, headers )` + * `LENGTH_REQUIRED( message, headers )` + * `PRECONDITION_FAILED( message, headers )` + * `REQUEST_ENTITY_TOO_LARGE( message, headers )` + * `REQUEST_URI_TOO_LONG( message, headers )` + * `UNSUPPORTED_MEDIA_TYPE( message, headers )` + * `REQUESTED_RANGE_NOT_SATISFIABLE( message, headers )` + * `EXPECTATION_FAILED( message, headers )` + * `INTERNAL_SERVER_ERROR( message, headers )` + * `NOT_IMPLEMENTED( message, headers )` + * `BAD_GATEWAY( message, headers )` + * `SERVICE_UNAVAILABLE( message, headers )` + * `GATEWAY_TIMEOUT( message, headers )` + * `HTTP_VERSION_NOT_SUPPORTED( message, headers )` \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..a5381da --- /dev/null +++ b/index.js @@ -0,0 +1,15 @@ +var status = require('http-status'); +var http = require('http'); + +for( var i in status ){ + var num = parseInt(i); + if( num >= 100 ){ + func = "(function(msg, headers){ this.writeHead(" + num + ", headers); this.end(msg);} );"; + http.ServerResponse.prototype[i] = eval(func); + }else{ + http.ServerResponse.prototype[i] = http.ServerResponse.prototype[ status[i] ]; + } +} + + +module.exports = http.ServerResponse; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..f40a419 --- /dev/null +++ b/package.json @@ -0,0 +1,24 @@ +{ + "name": "response-codes", + "version": "0.0.1", + "description": "Extends http.ServerResponse to include status code functions.", + "keywords": [ + "http", "ServerResponse", "server", "response", "status", "codes", "extend" + ], + "author": { + "name": "Brett Langdon", + "email": "brett@blangdon.com" + }, + "contributors": [ + ], + "engines": { + "node": ">= 0.1.90" + }, + "dependencies": { + "http-status":"0.1.1" + }, + "repository":{ + "type": "git" + , "url": "github.com/brettlangdon/node-response-codes.git" + } +}