私は流星コレクションに簡単な挿入を行っていますが、動作しているように見えますが、コレクションは空のままです。
コレクションはサーバー上で適切に定義されています。
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() にフィルターがないため、データが適切に公開されていない理由がわかりません。