Browse Source

initial commit

master
Brett Langdon 12 years ago
commit
28f283a0b9
4 changed files with 109 additions and 0 deletions
  1. +1
    -0
      .gitignore
  2. +53
    -0
      README.md
  3. +30
    -0
      index.js
  4. +25
    -0
      package.json

+ 1
- 0
.gitignore View File

@ -0,0 +1 @@
node_modules

+ 53
- 0
README.md View File

@ -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();
```

+ 30
- 0
index.js View File

@ -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;

+ 25
- 0
package.json View File

@ -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"
}

Loading…
Cancel
Save