0.0.3 • Published 4 years ago

express-notify-io v0.0.3

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Express Notify-IO

Easy to setup middleware for notify-io.

Getting Started:

Initial Setup

const { SchemaBuilder, Notify } = require('notify-io')

const schema = new SchemaBuilder()

schema.create('unknown', {
    en: () =>`something went wrong`,
    zh: () =>`服务器有误`,
})

const instance = () => new Notify(schema)

const notifyStatusTo = require('express-notify-io')(instance)

app.use(notifyStatusTo('error'))
app.use(notifyStatusTo('validation'))

Usage in routes

    app.use((req, res, next) => {
        const { error, validation } = req.tools
        error(name, data, key)
        if(false) next(error())

        // or directly call error in your next function

        if(false) next(error(name, data, key)())

        // in no errors then continue to process code ...
    })

Usage in validation middleware

    app.use((req, res, next) => {
        const { validation } = req.tools
        const { validationErrors } = req.body

        if(validationErrors.length > 0){

            for(let err of validationErrors){
                const = { name, data, key } = err
                validation(name, data, key)
            }

            next(validation())
        }else{
            next()
        }
    })

Handle in errorHandler route

    app.use((err, req, res, next) => {
        
        let _error = null

        if(err instanceof Notify) {
            _error = err
        }else {
            const { error } = req.tools
            _error = error('unknown')
        }

        const msg = _error.langTo('zh').render()
        res.status(500).json(msg)
    })

output:

{
    "lang": "zh",
    "state": "error",
    "messages": [
        {
            "message": "服务器有误"
        }
    ]
}