| @ -0,0 +1 @@ | |||||
| node_modules | |||||
| @ -0,0 +1,53 @@ | |||||
| # YAPS Body Parser | |||||
| A body parsing plugin for [YAPS](https://github.com/brettlangdon/yaps.git). | |||||
| ## Install | |||||
| ### Via NPM | |||||
| ```bash | |||||
| npm install [-g] yaps-body | |||||
| ``` | |||||
| ### Via Git | |||||
| ```bash | |||||
| git clone git://github.com/brettlangdon/yaps-body.git | |||||
| cd ./yaps-body | |||||
| npm install | |||||
| `` | |||||
| ## Usage | |||||
| ```javascript | |||||
| var yaps = require("yaps"); | |||||
| var yaps_body = require("yaps-body"); | |||||
| var app = new yaps.server(); | |||||
| app.registerPlugin(yaps_body); | |||||
| var my_plugin = function(options){ | |||||
| this.POST("/", function(request, server, respond){ | |||||
| // the request body as a buffer | |||||
| console.dir(request.body); | |||||
| // any errors raised while reading the POST data | |||||
| console.dir(request.bodyError); | |||||
| respond(200, ""); | |||||
| }); | |||||
| }; | |||||
| app.registerPlugin(my_plugin); | |||||
| app.start(); | |||||
| ``` | |||||
| ## Settings | |||||
| ```javascript | |||||
| var yaps = require("yaps"); | |||||
| var yaps_body = require("yaps-body"); | |||||
| var app = new yaps.server({ | |||||
| // attempt to parse the body as JSON, default: false | |||||
| // this means request.body will be an obj and NOT a buffer | |||||
| bodyAsJSON: true, | |||||
| }); | |||||
| app.registerPlugin(yaps_body); | |||||
| app.start(); | |||||
| ``` | |||||
| @ -0,0 +1,30 @@ | |||||
| var body = function(options){ | |||||
| this.settings = options || {}; | |||||
| this.settings.bodyAsJSON = this.settings.bodyAsJSON || false; | |||||
| this.on("setup", function(request, server, done){ | |||||
| var self = this; | |||||
| request.body = new Buffer(0); | |||||
| request.on("data", function(chunk){ | |||||
| request.body = Buffer.concat([request.body, chunk]); | |||||
| }); | |||||
| request.on("end", function(){ | |||||
| if(self.settings.bodyAsJSON){ | |||||
| try{ | |||||
| request.body = JSON.parse(request.body); | |||||
| }catch(e){ | |||||
| request.body = undefined; | |||||
| request.bodyError = e.toString(); | |||||
| } | |||||
| } | |||||
| done(); | |||||
| }); | |||||
| request.on("error", function(error){ | |||||
| request.body = undefined; | |||||
| request.bodyError = error; | |||||
| done(); | |||||
| }); | |||||
| }); | |||||
| }; | |||||
| module.exports = body; | |||||
| @ -0,0 +1,25 @@ | |||||
| { | |||||
| "author": "Brett Langdon <brett@blangdon.com> (http://brett.is)", | |||||
| "bugs": { | |||||
| "url": "https://github.com/brettlangdon/yaps-body/issues" | |||||
| }, | |||||
| "description": "Body parser plugin for YAPS", | |||||
| "keywords": [ | |||||
| "body", | |||||
| "parser", | |||||
| "http", | |||||
| "server", | |||||
| "yaps" | |||||
| ], | |||||
| "license": "MIT", | |||||
| "main": "index.js", | |||||
| "name": "yaps-body", | |||||
| "repository": { | |||||
| "type": "git", | |||||
| "url": "git://github.com/brettlangdon/yaps-body.git" | |||||
| }, | |||||
| "scripts": { | |||||
| "test": "make test" | |||||
| }, | |||||
| "version": "0.1.0" | |||||
| } | |||||