express-json-handler
v0.0.1
Published
Simplify sending JSON responses in express handlers
Downloads
4
Maintainers
Readme
express-json-handler
Simply return objects from your route handler functions in express.
Instead of:
app.post('/auth/', (req, res) => {
res.json({ success: false });
});do:
const JSONHandler = require('express-json-handler');
app.post('/auth/', JSONHandler(async (req, res) {
return { success: false };
}));Benefits?
returninstead ofres.json()asyncfunctions properly handled- errors properly delivered in JSON responses
- browser cache disabled
Installation
npm install express-json-handlerAsync functions handled and errors catched
express-json-handler properly supports async functions in Express 4. This won't work as expected in Express 4:
app.post('/auth/', async (req, res) {
non_existing();
});express-json-handler catches errors on your async handler and in that case { success: false } is returned. You can change the default reply:
const JSONHandler = require('express-json-handler');
JSONHandler.DEFAULT_FAIL_RESPONSE = {
message: "Internal server error"
};
app.post('/auth/', JSONHandler(async (req, res) {
non_existing();
}));Direct responses
You can still send direct responses from your handler code, either with res.send() or even res.json() if you like. Return nothing or null from your handler in case you do.
Caching of responses
By default express-json-handler sends cache disabling headers in responses, namely:
Cache-Control: private, max-age=0, no-cache, must-revalidate
Pragma: no-cacheYou can change that behavior:
const JSONHandler = require('JSONHandler');
JSONHandler.DEFAULT_HEADERS = {
'Cache-Control': 'max-age=3600'
};Development and maintenance
Tests: npm run test or mocha test.js.
Liner: npm run lint or eslint index.js.
Footer
Author: Egor Egorov [email protected]. License: MIT
