問題タブ [meteor-methods]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - コールバック関数を使用しても Meteor.call で例外が発生する
Meteor メソッドがあります。
フィールドのカスタム検証statusNote
:
私の問題は、コールバック関数が定義されていても:
例外がコンソールに記録されます。
'orderStatusUpdate' errorClass {message: "Match error: Note is required"、パス: ""、sanitizedError: errorClass、errorType: "Match.Error"、invalidKeys: Array[1]} の呼び出しの効果をシミュレート中に例外が発生しました。エラー: 一致エラー: メモが必要です
私が理解しているように、私が呼び出すと例外が発生しますcheck(...)
。
この例外をキャッチして顧客に適切に表示するにはどうすればよいですか?
ところで、コールバック関数もerror
変数セットで呼び出されます。
meteor - 単一の Meteor サーバー メソッドに複数の名前を定義する
いくつかのサーバー メソッドをエクスポートする Meteor パッケージがあります。メソッドにどのように名前を付けるかについて、広く普及している慣例がないため、各メソッドに複数の名前を付けたいと考えています。最初は、他のメソッドから最初のメソッドへの呼び出しを使用しました。
今、私はより簡単なアプローチを使用します:
しかし、それを行うためのさらに単純な、またはおそらく従来のアプローチはありますか?
javascript - Meteor.call コールバックは実行されず、フェッチを行わないと黙って無視されます
なぜ私がこれを書いたら:
/client/Items.js
/ItemsMethods.js
コールバックは黙って無視されます。つまり、コールバックは実行されず、エラーは発生しませんか?
これreturn Items.find({});
をこれに置き換えると、return Items.find({}).fetch();
すべて期待どおりに機能することに注意してください。
meteor - meteor publish subscribe にプロジェクションを使用する
特定のデータモデルでのみ機能するUI要素フレームワークがあります(「テキスト」キーを持つオブジェクトが必要です)。これは、私の mongodb に存在するデータ モデルとは異なります。そこで私の最初のアイデアは、プロジェクションを使用してリスナーに公開することでした。
var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db;
db.Element.aggregate({$project: { _id:1, text:"$description"}});
問題は、これがカーソルではなく、単純な ejson オブジェクトであることです。UI フレームワークに必要なデータを提供し、両側からの反応性/データ バインディングを行うには、どの戦略を使用する必要がありますか。
javascript - JavaScript コンソールから「Meteor.call」を呼び出さないようにするにはどうすればよいですか?
Meteor.call
ユーザーがコレクションのinsert、update、removeメソッドを呼び出せないようにするという概念が、JavaScriptコンソールから引き続き呼び出すことができることに気付きました。
クライアントの例:
サーバー部分は次のとおりです。
OK、JavaScript コンソールから直接 Product.insert() を呼び出すことができないことはわかっています。
しかし、もう少し試してみると、Meteor.call()
開発者ツールのリソース タブからクライアントの JavaScript にあることがわかります。
これで、コンソールから呼び出して、のプロパティMeteor.call
がどうあるべきかを推測できるようになりました。productInfo
では、どうすればこの最後の活動を防ぐことができるのでしょうか? Meteor.call
仕事は十分にできていますか?または私は何か重要なものを逃していますか?
meteor - メソッド呼び出しはイベントから返されませんが、コンソールから返されます
私には理解できない奇妙な問題があります。テンプレート イベント ハンドルにメソッドとメソッド呼び出しがあります。何らかの理由で、メソッド呼び出しは 5 回に 1 回しか機能せず、DOM を更新しません。呼び出しが機能すると、console.log(Session.get('getReportData')+ " from method call");
オブジェクトをコンソールに返しますが、DOM には返しません。
コンソールで手動で変数を設定して呼び出すと:
私はすべてを取り戻し、DOMも更新されます。
コードは次のとおりです。
この問題の原因は何ですか?
- コールは毎回機能しません。
- 動くとDOMが更新されない?
meteor - 投票システムを安全にする Meteor.Methods
安全で、クライアント コンソールから Meteor.call() で変更できない投票システムを実装しようとしています。ログインしている場合は、誰でもいくつかの投稿に投票できます。ただし、すべてのユーザーと投稿に対して 1 回だけです。
私のクライアント側だけが次のようなものを手に入れました:
私のサーバー上:
問題は、たとえば、誰かが a を呼び出したMeteor.call('argumentvoteYes', "someID" , {$inc: {score:2}});
場合、スコアを 2 増やします。ユーザーがこれを 2 回呼び出した場合、投票は 4 増えます。これを安全な方法で行う方法はありますか?
javascript - Meteor メソッドで AutoForm に AutoValue が設定されていない
autoform、collection2、および単純なスキーマを使用して作成された挿入フォームがあります。このcreatedBy
フィールドには、autovalue を使用して userId が入力されます。挿入に使用するとフォームは機能しmeteor.allow()
ましたが、許可をメソッドに置き換えて、ユーザーロールの検証、つまりユーザーに管理者権限があることを確認したかったのです。createdBy
しかし、フィールドが空であるというエラーが表示されます。
開発ツールのエラーは次のとおりです。
エラー: 400、理由: "作成者が必要です"、詳細: 未定義、メッセージ: "作成者が必要です [400]"、errorType: "Meteor.Error"}
メソッド (クライアントとサーバーで利用可能):
フォームが生成されるテンプレート:
javascript - リアクティブ変数によって参照されるMeteorメソッドをリアクティブに呼び出す方法は?
Session
ハードコーディングされた文字列ではなく、その名前を含む変数を使用して Meteor メソッドを呼び出そうとしています。Session
一度機能しますが、を介して値が変更されたときにメソッドを再実行しませんSession.set
。
サーバーコード:
クライアントコード:
Session
値が変更された後に「新しい」メソッドをリアクティブに呼び出すにはどうすればよいですか?