ExpressPlus
This lightweight Express.js middleware focuses on two main features:
- (Type-) checking the request body
- Standardising the result/error format
Getting started
const expressPlus = require('express-plus')
app.use(expressPlus.createMiddleware())
Check request body
const { Rule } = require('@cesium133/forgjs')
const bodyRules = {
username: new Rule({
type: 'string',
minLength: 3,
maxLength: 120,
notEmpty: true
}),
password: new Rule({
type: 'password',
minLength: 3,
maxLength: 120,
notEmpty: true
})
}
app.post('/', (req, res) => {
const isValid = req.checkBody(bodyRules)
if (!isValid) {
return
}
})
This will result in:
{
"status": "ERROR",
"error": {
"name": "Invalid request body",
"message": "Could not parse request body, check for invalid or missing fields"
}
}
Return data if request is successful
app.post('/', (req, res) => {
res.resolve({
yourData: 'FOR-EXAMPLE-A-TOKEN'
})
})
This will result in:
{
"status": "SUCCESS",
"payload": {
"yourData": "FOR-EXAMPLE-A-TOKEN"
}
}
Create custom errors
res.reject(expressPlus.createHttpError(500, 'Your error', 'Provide a concise error message.'))
or
next(expressPlus.createHttpError(500, 'Your error', 'Provide a concise error message.'))
Handle errors
app.use(expressPlus.createErrorHandler())
Place this middleware usage call after every other to ensure full error handling. To learn more about Express.js error handling follow this link.
You can see a full example here.