import {favRestaurants} from '/lib/collections';
import {Meteor} from 'meteor/meteor';
import {check} from 'meteor/check';
export default function() {
Meteor.methods({
'favRestaurants.create' (id, name, rating, priceLevel, type) {
check(id, String);
check(name, String);
check(rating, Number);
check(priceLevel, Number);
check(type, String);
const createdAt = new Date();
const restaurant = {id, name, rating, priceLevel, type, createdAt};
if(check(Meteor.user()) == null){
console.log('onlye logged in users can data');
}else{
FavRestaurants.insert(restaurant);
}
}
});
}
これは、レストランコレクションにデータを追加するための私の挿入メソッドです。コンソールに「check(Meteor.user())」とログを記録すると、出力としてnullが返されます。このロジックによって、コレクションにデータを追加することはできませんが、これは可能です。ログインしたユーザーの個人的なコレクションを作成する
また、FavResaurantsコレクションを各ユーザーに個人用にしたいと考えています。 Iv'eは、ユーザーがいるかどうかを確認してから、クライアント側のmain.jsファイルにコレクションを追加しようとしました。
Meteor.loggingIn(() => {
console.log('check for user method');
var restId = 0;
if(Meteor.user() != null){
console.log('created new collection for the user');
const FavRestaurants = new Mongo.Collection('favRestaurants' + restId);
}
restId++;
});
私は私が流星docsで見つかったこの方法を使用してコンソールに任意の出力を取得いけません。コードは間違った場所にありますか?どんな助けでも大いに訴えられます。
docsによると、Accounts.ui.configは私が使用すべき方法です。しかし、私はコードでそれを置くべきではないか分かりません。今のところこのメソッドを配置すると、アプリケーションがクラッシュすることになります。
コレクションはクライアント側とサーバー側の両方で定義する必要があります。ただし、クライアント上でのみ定義され、サーバーに戻されることはありません。 –
コレクションはクライアントとサーバーの両方で定義されています –