Я новичок с петлей и есть что-то, чего я действительно не понимаю с помощью крючков.как заблокировать добавление модели с помощью крючков?
У меня есть модель «вопрос» с этими свойствами: - ID - .. - .. - идентификатор пользователя
и то, что я хочу сделать, это проверить, если идентификатор пользователя уже существует в таблице пользователей, когда запрос POST призван добавьте вопрос. (и поднимите ошибку, но это уже работает)
Итак, я создал резервный ключ, который хорошо работает (ошибка поднята и т. д.), но я не могу заблокировать добавление модели, даже если я позвоню " next (err) "на моем крючке.
Question.observe('before save', function isInDb(ctx, next){
var PoemUser = app.models.PoemUser;
var PoemUserId = ctx.instance.id_author;
PoemUser.findOne({ where: {id: PoemUserId} } ,function(err,exists){
console.log('exist : ' +exists);
if (exists == null){
var err = new Error();
err.name = "id not existing"
err.status = 404; // don't know wich code use
err.message = "This user is not existing";
next(err);
};
});
});
};
Я искал документацию, но, по-моему, я не очень хорошо это сделал.
Это будет действительно здорово, если кто-то сможет объяснить мне хороший способ сделать то, что я хочу сделать.
Спасибо заранее!
спасибо, Я добился, чтобы это сработало, спасибо за информацию, я этого не знал! должен ли я проверить, является ли это обновлением или дополнением для работы с ctx.instance или ctx.data? Или есть способ заставить его работать в обоих случаях? –
Вы можете сделать так: var instance = (ctx.instance)? ctx.instance: ctx.data; 'и экземпляр будет содержать значение в обоих случаях создания/обновления. –