appa
v6.1.3
Published
Quickly create simple JSON API services.
Downloads
82
Readme
appa
Quickly create simple JSON API services.
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
- Basic example
- Example server and client
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 [email protected]