Collection2のドキュメントでは、 Schemaの作成方法とSchema をコレクションにアタッチする方法について説明していますが、挿入/更新フォーム、エラー処理、オートフォームを使用しない完全な動作例が欠落していると思います。
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 を使用するように更新すると、このコードはどのようになりますか?