Sails 1.0,如何从Action2调用customToJSON?

时间:2017-12-18 12:29:53

标签: javascript node.js express sails.js

好吧,我有一个用户模型,需要实现customToJSON并删除要返回的对象的密码json。 当我把“退出”中的“responseType”作为“json”时,一切都很好,并且密码从响应中取出。但是,responseType:“json”将根据终端中发送responseType为空的消息而弃用,但不会调用customToJSON。任何人都可以帮我理解这个吗?

这是型号代码:

[...]

    attributes: {

    name: {
        type: 'string',
        required: true,
    },

    email: {
        type: 'string',
        required: true,
    },

    password: {
        type: 'string',
        minLength: 6,
        required: true,
    },
},

customToJSON: function() {
    return _.omit(this, ['password']); 
},
[...]

这是行动代码:

module.exports = {

friedlyName: 'Users List',

description: 'User list -> all users',

exits: {
    success: {

    }

},

fn: async (inputs, exits) => {

    var users = await User.find();

    return exits.success(users);

}

}

如果您输入“responseType:'json'”:

,则会显示此消息
  

即将发布的版本中将弃用json响应类型。请改用“(标准)”(即从responseType出口删除success。)

1 个答案:

答案 0 :(得分:1)

我在api / responses文件夹中定义了自定义响应。

所以,例如......对于200 OK响应创建api / responses / ok.js

然后在action2控制器方法中添加以退出:

module.exports = function ok(data) {
    return this.res.status(200).json(data);
};

我的简单api / respond / ok.js

的示例
 func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        let dotString = "."

        if let text = textField.text {
            let isDeleteKey = string.isEmpty

            if !isDeleteKey {
                if text.contains(dotString) {
                    if text.components(separatedBy: dotString)[1].count == 2 {

                                return false

                    }

                }

            }
        }
  }

您可以为所需的每个状态/退出创建响应,稍后可以轻松维护退出...我有以下响应:badRequest,serverError,forbidden,notFound和unauthorized