В документации для Collection2 объясняется, как создать Schema, и как подключить Схему к коллекции, но я думаю, что полный рабочий пример с форматами вставки/обновления с обработкой ошибок и без автоматической формы отсутствует.Как реализовать Collection2 на рабочем проекте Meteor?
Как мне изменить существующий проект, чтобы использовать Collection2? В частности:
- Нужно ли мне еще
check(Meteor.userId(), String);
? - Мне больше не нужно звонить
check()
? - Могу ли я удалить код подтверждения? Я просто звоню
insert()
, а Collection2 поймает все ошибки благодаря схеме? - Что-нибудь еще я должен изменить?
Здесь пример кода из DiscoverMeteor:
Meteor.methods({
postInsert: function(postAttributes) {
check(Meteor.userId(), String);
check(postAttributes, {
title: String,
url: String
});
var errors = validatePost(postAttributes);
if(errors.title || errors.url) {
throw new Meteor.Error('invalid-post', 'Set a title and valid URL for your post');
}
var user = Meteor.user();
var post = _.extend(postAttributes, {
userId: user._id,
author: user.username,
submitted: new Date(),
commentsCount: 0
});
var postId = Posts.insert(post);
return {
_id: postId
};
}
});
validatePost = function(post) {
var errors = {};
if(!post.title) {
errors.title = "Please fill in a headline";
}
if(!post.url) {
errors.url = "Please fill in a URL";
} else if(post.url.substr(0, 7) != "http://" && post.url.substr(0, 8) != "https://") {
errors.url = "URLs must begin with http:// or https://";
}
return errors;
}
Как бы этот код выглядеть при обновлении использовать Collection2?
Такой пакет потребует некоторых изменений, если вы хотите использовать его в меру своих возможностей. Но это помогло бы _a lot_, если бы вы предоставили некоторый код, такой как код проверки намерений базы данных CRUD, код проверки кода сервера, код клиента, ... Таким образом, мы могли бы привести примеры того, как обновлять код, подходящий для коллекции2, или, может быть, комментировать/исправить свои попытки. –
Спасибо, я добавил код на стороне сервера. – aBe