У меня есть данные, отправленные с внешнего интерфейса на мой контроллер, и мне нужно изменить данные, прежде чем создавать действие. Я не хочу писать настраиваемое действие для создания, действие Create API для Blueprint - это то, что мне нужно. Мне просто интересно, какое место нужно сделать для такого изменения данных. В основном мне нужно заполнить атрибут модели до ее сохранения в базе данных.sails.js изменить модель перед созданием
1
A
ответ
-2
Вы можете попытаться написать код js на своей стороне, чтобы изменить свои данные перед действием create. Удачи вам!
3
Вы можете использовать обратный вызов жизненного цикла 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);
});
}
};
Или вы могли бы override план создания действия, путем создания файла api/blueprints/create.js
и сделать ваши изменения там. Он будет похож на контроллер выше. Но это повлияет на создание действия для всех моделей, поэтому, вероятно, не то, что вы хотите.
сделать это у вас передняя часть javascript. – vkstack