在nodejs/express中轻松定义restful api的错误
发布于 15 天前 作者 calidion 267 次浏览 来自 分享

项目地址:

Errorable : https://github.com/calidion/errorable express中间件: https://github.com/Errorable/express-middleware

1. 定义错误

特点:

  1. 可以无限嵌套(在JS运行栈的允许范围内)
  2. 支持i18n
  3. 支持别名 这里生成后的errors对象中的errors.MeLoveYou === errors.ILoveYou
  4. 支持code,对于希望处理数值的应用会有帮助。

//错误定义

var json = {
  I: {
    Love: {
      You: {
        messages: {
          'zh-CN': '我爱你!',
          'en-US': 'I Love U!'
        },
        code: 1
      }
    }
  },
  Me: {
    alias: 'I'
  },
  Hello: {
    code: 100,
    messages: {
    }
  }
};

2. 生成错误

var errorable = require('errorable');
//错误批量生成
var errors = errorable.get(json, 'zh-CN');
//errors.ILoveYou
//errors.ILoveYou.name
//errors.ILoveYou.code
//errors.ILoveYou.message
//errors.ILoveYou.restify()

//错误名称大写
var errors = errorable.get(json, 'zh-CN', true);
//errors.I_LOVE_YOU
//errors.I_LOVE_YOU.name
//errors.I_LOVE_YOU.code
//errors.I_LOVE_YOU.message
//errors.I_LOVE_YOU.restify()

3. 在express中使用

使用后res对象会多出来restify/errorize两个方法,两者作用一样都是用于生成JSON错误。

var errorableExpress = require('errorable-express');
express.use(errorableExpress(errors));
express.get('/', function indexxx(req, res) {
  res.restify(res.errors.ILoveYou);
});
express.get('/message', function messagexx(req, res) {
  res.restify(res.errors.ILoveYou, {id: '1'});
});

express.get('/unknown', function unknownxx(req, res) {
  res.restify();
});

express.get('/errorize', function errorizexx(req, res) {
  //restify === errorize
  res.errorize();
});

3. 使用已经定义的错误

在项目 Errorable 下面有很多错误的定义,你可以反馈,完善,使用,fork,修改,创建。

4.参考到项目里来

如有意分享你的错误到Errorable中来,欢迎添加QQ群: nodejs开源项目交流群: 312685910 详细的错误制作流程参考wiki: 如何添加自己的错误

回到顶部