Skip to content

juliangruber/co-respond

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

co-respond

Respond to http requests with co streams.

build status

Example

Respond with a stream that yields a string three times.

var http = require('http');
var co = require('co');
var respond = require('co-respond');
var wait = require('co-wait');

var server = http.createServer(function(req, res){
  co(function*(){
    try {
      yield respond(res, thrice('  hi!\n'));
    } catch (err) {
      res.statusCode = 500;
      res.end('  ' + err.message + '\n');
    }
  })();
});

function thrice(str){
  var i = 0;
  return function*(end){
    if (end || i++ > 2) return;
    yield wait(1000);
    return str;
  }
}

server.listen(8007);
console.log('curl http://localhost:8007/');

Installation

$ npm install co-respond

API

yield respond(res, stream)

Pipes the co stream stream into res and yields when done.

Throws if stream or res emit an error.

License

MIT

About

Respond to HTTP requests with co streams

Resources

Stars

Watchers

Forks

Packages

No packages published