Skip to content
JSGI Adapter for Node.js
JavaScript
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
lib
README.md
package.json

README.md

JSGI 0.3 Adapter for Node

To use, provide a JSGI application (can be application stack) to the start function:

require("jsgi-node").start(function(request){
  return request.body.join().then(function(requestBody){
    return {
      status:200,
      headers:{},
      body:["echo: " + requestBody]
    };
  });
});

This adapter should conform to the JSGI 0.3 (with promises) for full asynchronous support. For example:

var fs = require("promised-io/fs");
require("jsgi-node").start(function(request){
  return fs.readFile("jsgi-node.js").then(function(body){
    return {
      status: 200,
      headers: {},
      body: [body]
    };
  });
});

File objects returned from promised-io's fs can be directly provided as body for automated streaming of data to the client from the filesystem:

var fs = require("promised-io/fs");
require("jsgi-node").start(function(request){
  return {
    status: 200,
    headers: {},
    body: fs.open("some-file.txt","r")
  };
});

This package also includes an adapter for running Node HTTP apps on top of JSGI middleware:

var fs = require("promised-io/fs"),
    Node = require("jsgi/node").Node;
require("jsgi-node").start(
  SomeJSGIMiddleWare(
    OtherJSGIMiddleWare(
      Node(function(request, response){
       // request and response conform to Node's HTTP API
      })
    )
  )
);
Something went wrong with that request. Please try again.