express-magic-route

3.0.0 • Public • Published

express 4.x 路由魔法配置器

  • 多URL配置
  • API json schema 验证(Joi@6.10.1)
  • 多中间件配置

快速使用

var express = require('express')
var magicRoute = require('express-magic-route')
 
var v1RouteConfig = require('./router/seedConfig')
 
var app = express()
 
app.use('/v1', magicRoute(v1RouteConfig))
 

配置文件参数

url
    string                      单个url路径
    [string]                    多个url路径使用相同的处理方式
 
method
    string                      方法,默认get
 
middleware
    function(req, res, next)    单个中间件处理该url/[url]
    [function(req, res, next)]  多个中间件按照顺序处理url/[url]
   
schema                          验证表单的schema
    function(req, joi)          joi数据验证,验证错误时返回http 400错误
                                验证失败时返回{error_no, error_desc}
 
where                           验证表单的schema req的属性
    string                      [query, body] 默认query
 
disable                         是否停用路由
    boolean                     默认为false
 
errorCode
    number                      验证数据错误码,默认-10001

使用事例 seedConfig.js

user = require('../middleware/user')
 
module.exports = [
  { // 登录时验证用户密码是否为空
    url: '/api/user/login'
    middleware: user.login
    schema: (req, Joi)->
      Joi.object({
        username: Joi.string().required()
        password: Joi.string().required()
      })
  }, {  // 登出时使用多中间件
    url: '/api/user/logout'
    middleware: [user.isValid, user.logout]
  }, {  // 多个url支持获取登录用户信息
    url: ['/api/user/profile', '/api/user/info']
    middleware: [user.isValid, user.get]
  }
]
 

错误格式化

var magicRoute = require('express-magic-route')
 
默认返回格式
{
  error_no: -100001
  error_desc: ''
}
 
// 可自己定制错误格式
magicRoute.ErrorFormater = function (code, error) {
  return code + error.desc
}
 
错误信息格式化
code: 默认错误代码
error: Joi错误对象

Readme

Keywords

none

Package Sidebar

Install

npm i express-magic-route

Weekly Downloads

8

Version

3.0.0

License

MIT

Last publish

Collaborators

  • bitebit