then-busboy
Promise-based wrapper around Busboy, inspired by async-busboy
![Build Status](https://travis-ci.org/octet-stream/then-busboy.svg?branch=master)
Installation
Use can install then-pusboy
from npm:
npm install then-busboy --save
Or with yarn
yarn add then-busboy
yarn
Usage
busboy(request[, options]) -> Promise
- http.IncomingMessage request - HTTP request object
- object options
- boolean split - If set as
true
, the data
object will be split into two other objects: fields
and files
. - more information about busboy options here.
Just import then-busboy
and pass request
object as first argument.
For example:
var busboy = require("then-busboy");
var createServer = require("http").createServer;
function callback(req, res) {
if (req.method === "GET") {
res.statusCode = 404
return res.end("Not Found");
}
if (req.method !== "POST") {
res.statusCode = 405;
return res.end("Method Not Allowed");
}
function onFulfilled(data) {
res.writeHead("Content-Type", "application/json");
res.end(JSON.stringify(data));
}
function onRejected(err) {
res.statusCode = err.status || 500;
res.end(String(err));
}
busboy(req).then(onFulfilled, onRejected);
}
createServer(callback)
.listen(2319, () => console.log("Server started on http://localhost:2319"));
then-busboy
always returns a Promise, so you can use it with
asynchronous function syntax:
var data = await busboy(req);
And the same code, but with split: true
option:
var {fields, files} = await busboy(req, {split: true});
License
MIT