SailsJS:如何在JSON响应中隐式地将camel case转换为snake case?

Jas*_*bas 5 json node.js sails.js

是否有一种方法在sails.js转换camelCase为使用snake_case时返回JSON响应res.ok(data),其中data是一个对象,没有显式getterssetters在模型中执行此操作?

Eug*_*kov 4

还有另一种解决方案,不需要在每个响应中实施。

您可以在包含以下内容的文件夹中定义自定义挂钩api/hooks

var snakeCase = require('snake-case');

module.exports = function (sails) {
  return {
    routes: {
      after: {
        'all /*': function overrideJsonx(req, res, next) {
          var jsonx = res.jsonx;
          res.jsonx = function (obj) {
            var res = snakeCase(obj);
            jsonx(res);
          };

          next();
        }
      }
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

它将适用于所有响应,而无需修改api/response文件夹中的自定义响应。