6.1.3 • Published 7 years ago

appa v6.1.3

Weekly downloads
6
License
ISC
Repository
github
Last release
7 years ago

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

  • issues – Please open issues in the issues queue
  • twitter – Have a question? @sethdvincent
  • email – Need in-depth support via paid contract? Send an email to sethvincent@gmail.com

License

ISC

6.1.3

7 years ago

6.1.2

7 years ago

6.1.1

7 years ago

6.1.0

7 years ago

6.0.0

8 years ago

5.0.1

8 years ago

5.0.0

8 years ago

4.1.0

8 years ago

4.0.0

8 years ago

3.0.2

8 years ago

3.0.1

8 years ago

3.0.0

8 years ago

2.1.0

8 years ago

2.0.0

8 years ago

1.0.2

8 years ago

1.0.1

9 years ago

1.0.0

9 years ago