appa

v1.0.0
a little friend that helps serve your web API services

appa

Quickly create simple JSON API services.

npm travis standard conduct

appa

Install

Make sure you've got node installed, then make appa a project dependency:

npm install --save appa

Usage

var http = require('http')
var app = require('appa')()
var send = require('appa/send')
var log = app.log

app.on('/', function (req, res, context) {
  send({ message: 'oh hey friends' }).pipe(res)
})

http.createServer(app).listen(3000, function () {
  log.info('server started at http://127.0.0.1:3000')
})

Error handling

Any uncaught errors that occur in a request handler will be caught and a 500 Internal server error response will be sent.

Send error responses using the appa/error module:

var error = require('appa/error')

module.exports = function (req, res, ctx) {
  return error(404, 'Not found').pipe(res)
}

Sending an error response does not automatically log the error, so to add that you can do something like:

var error = require('appa/error')
var log = require('appa/log')()

module.exports = function (req, res, ctx) {
  log.error(req.method, '500', errorStack)
  return error(500, 'Internal server error').pipe(res)
}

Logging

appa uses pino for logging. Pass options to pino with options.log: appa({ log: pinoOptions }).

See example pino usage and all pino options.

Or disable logging completely by setting options.log to false: appa({ log: false }).

Documentation

Examples

Contributing

Contributions are welcome! Please read the contributing guidelines first.

Conduct

It is important that this project contributes to a friendly, safe, and welcoming environment for all. Read this project's code of conduct

Changelog

Read about the changes to this project in CHANGELOG.md. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Contact

License

ISC

Metadata

  • MIT
  • Whatever
  • Unknown
  • released 8/18/2015

Downloads

Maintainers