繁体   English   中英

sails.js在创建之前修改模型

[英]sails.js modify model before create

我有一个从前端发送到我的控制器的数据,我需要在创建动作之前修改数据。 我不想编写自定义创建操作,Blueprint API的创建操作就是我需要的。 我只是想知道在哪里进行此类数据修改的正确位置。 基本上我需要在将数据保存到数据库之前填充模型的属性。

您可以在模型中使用beforeCreate生命周期回调函数在数据库中创建条目之前修改值。

module.exports = {
    attributes: {
        // your models attributes
    },

    beforeCreate: function (values, cb) {
        // make your changes
        return cb();
    }
}

您可以编写控制器操作来执行此操作

// api/controllers/ModelController.js
// controller actions for api/models/Model.js

module.exports = {
    create: function (req, res) {
        var options = request.body;

        // modify request body
        Model
            .create(options)
            .exec(function (err, obj) {
                if (err) { return res.serverError(); }
                return res.json(obj);
            });
    }
};

或者您可以通过创建文件api/blueprints/create.js覆盖蓝图创建操作,并在那里进行修改。 与上面的控制器类似。 但这会影响所有模型的创建操作,所以可能不是你想要的。

您可以尝试在客户端编写一些js代码,以便在创建操作之前修改数据。 祝你好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM