好吧,我有一个用户模型,该模型需要实现customToJSON并删除要返回的对象json的密码。
当我在“出口”中将“ responseType”设置为“ json”时,一切都会正常进行,并且密码将从响应中删除。但是,将根据将responseType发送为空的终端中的消息弃用responseType:“ json”,但是不会调用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。)

最佳答案

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

因此,例如...对于200 OK响应,请创建api / responses / ok.js

然后在action2控制器方法内部将其添加到出口:

exits: {
    success: {
        description: 'Returns ok response from api/responses/ok.js',
        responseType: 'ok'
    }
}, ...


我的简单api / responses / ok.js的示例

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


您可以为所需的每个状态/退出创建响应,以后可以很容易地维护出口...我有以下响应:badRequest,serverError,禁止,notFound和未经授权

关于javascript - Sails 1.0,如何从Action2调用customToJSON?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47868547/

10-12 06:15