私は仕事のように見えるが、コレクションは空のままにしておきます。メテオールの挿入が機能しているように見えますが、空のままです
コレクションは、サーバー上で適切に定義されています
Meteor.publish("comments", function() {
return Comments.find();
});
購読に適切にclient.jsで:
Meteor.subscribe("commments");
そしてmodel.jsに適切に設定:
Comments = new Meteor.Collection("comments");
挿入コードは次のとおりです。
以下のうち、インサートが呼び出されるとMeteor.methods({
addComment: function (options) {
check(options.post_id, String);
check(options.comment, NonEmptyString);
if (! this.userId)
throw new Meteor.Error(403, "You must be logged in to comment.");
if (options.comment.length > 1000)
throw new Meteor.Error(413, "Comment is too long");
var post = Posts.findOne(options.post_id);
if (! post)
throw new Meteor.Error(404, "No such post");
// add new comment
var timestamp = (new Date()).getTime();
console.log('Comment: ' + options.comment);
console.log('Post: ' + options.post_id);
console.log('UserId: ' + this.userId);
var saved = Comments.insert({
owner: this.userId,
post_id: options.post_id,
timestamp: timestamp,
text: options.comment});
console.log('Saved: ' + saved);
}
});
、コンソール版画:
Comment: Something
Post: xRjqaBBEMa6qjGnDm
UserId: SCz9e6zrpcQrKXYWX
Saved: FCxww9GsrDsjFQAGF
> Comments.find().count()
0
あなたがポストIDを見ることができるように私は投稿はそれらの1つであるうまく動作するいくつかの他のコレクション(への挿入を持っていますコード)。ドキュメントでは、挿入エラーがコンソールに出力されますが、実際には動作しているように見えますが、実際には空であることがわかります。
ありがとうございました。
更新:データがデータベースに格納されていることがわかりましたが、何らかの理由で表示されません。 find()にフィルタがないので、なぜデータが適切に公開されていないのかわかりません。
私のコードをチェックしましたが、私はmodel.jsにMeteor.subscribeがあることに注意して忘れました。コメント=新しいMeteor.Collection( "comments");メインページでは同じですが、PostとSectionのコレクションも同じですが、期待通りに動作します。 私はチェックして、彼らはデータベースにあります。彼らがなぜ表示されないかもしれない他のアイデア? – Erick
'Meteor.subscribe(...)'はあなたのクライアントコードに含まれていて、共有されていないはずです...おそらくあなたの質問のコードを更新しますか?私はそれがどこにあるかを見ることができればバグを見つけるのは非常に簡単でなければならない:) – emgee
私の間違い(私はまだ朝のコーヒーが必要)。 Meteor.subscribe()はモデルではなくクライアント上にあります。 コメント=新しいMeteor.Collection( "comments"); model.jsファイルにあります。 – Erick