問題タブ [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.

0 投票する
2 に答える
81 参照

javascript - コールバック関数を使用しても Meteor.call で例外が発生する

Meteor メソッドがあります。

フィールドのカスタム検証statusNote:

私の問題は、コールバック関数が定義されていても:

例外がコンソールに記録されます。

'orderStatusUpdate' errorClass {message: "Match error: Note is required"、パス: ""、sanitizedError: errorClass、errorType: "Match.Error"、invalidKeys: Array[1]} の呼び出しの効果をシミュレート中に例外が発生しました。エラー: 一致エラー: メモが必要です

私が理解しているように、私が呼び出すと例外が発生しますcheck(...)

この例外をキャッチして顧客に適切に表示するにはどうすればよいですか?

ところで、コールバック関数もerror変数セットで呼び出されます。

0 投票する
0 に答える
45 参照

meteor - 単一の Meteor サーバー メソッドに複数の名前を定義する

いくつかのサーバー メソッドをエクスポートする Meteor パッケージがあります。メソッドにどのように名前を付けるかについて、広く普及している慣例がないため、各メソッドに複数の名前を付けたいと考えています。最初は、他のメソッドから最初のメソッドへの呼び出しを使用しました。

今、私はより簡単なアプローチを使用します:

しかし、それを行うためのさらに単純な、またはおそらく従来のアプローチはありますか?

0 投票する
2 に答える
588 参照

javascript - Meteor.call コールバックは実行されず、フェッチを行わないと黙って無視されます

なぜ私がこれを書いたら:

/client/Items.js

/ItemsMethods.js

コールバックは黙って無視されます。つまり、コールバックは実行されず、エラーは発生しませんか?

これreturn Items.find({});をこれに置き換えると、return Items.find({}).fetch();すべて期待どおりに機能することに注意してください。

0 投票する
1 に答える
219 参照

meteor - meteor publish subscribe にプロジェクションを使用する

特定のデータモデルでのみ機能するUI要素フレームワークがあります(「テキスト」キーを持つオブジェクトが必要です)。これは、私の mongodb に存在するデータ モデルとは異なります。そこで私の最初のアイデアは、プロジェクションを使用してリスナーに公開することでした。

var db = MongoInternals.defaultRemoteCollectionDriver().mongo.db; db.Element.aggregate({$project: { _id:1, text:"$description"}});

問題は、これがカーソルではなく、単純な ejson オブジェクトであることです。UI フレームワークに必要なデータを提供し、両側からの反応性/データ バインディングを行うには、どの戦略を使用する必要がありますか。

0 投票する
5 に答える
1220 参照

javascript - JavaScript コンソールから「Meteor.call」を呼び出さないようにするにはどうすればよいですか?

Meteor.callユーザーがコレクションのinsert、update、removeメソッドを呼び出せないようにするという概念が、JavaScriptコンソールから引き続き呼び出すことができることに気付きました。

クライアントの例:

サーバー部分は次のとおりです。

OK、JavaScript コンソールから直接 Product.insert() を呼び出すことができないことはわかっています。

しかし、もう少し試してみると、Meteor.call()開発者ツールのリソース タブからクライアントの JavaScript にあることがわかります。

これで、コンソールから呼び出して、のプロパティMeteor.callがどうあるべきかを推測できるようになりました。productInfo

では、どうすればこの最後の活動を防ぐことができるのでしょうか? Meteor.call仕事は十分にできていますか?または私は何か重要なものを逃していますか?

0 投票する
1 に答える
30 参照

meteor - メソッド呼び出しはイベントから返されませんが、コンソールから返されます

私には理解できない奇妙な問題があります。テンプレート イベント ハンドルにメソッドとメソッド呼び出しがあります。何らかの理由で、メソッド呼び出しは 5 回に 1 回しか機能せず、DOM を更新しません。呼び出しが機能すると、console.log(Session.get('getReportData')+ " from method call");オブジェクトをコンソールに返しますが、DOM には返しません。

コンソールで手動で変数を設定して呼び出すと:

私はすべてを取り戻し、DOMも更新されます。

コードは次のとおりです。

この問題の原因は何ですか?

  1. コールは毎回機能しません。
  2. 動くとDOMが更新されない?
0 投票する
3 に答える
63 参照

meteor - 投票システムを安全にする Meteor.Methods

安全で、クライアント コンソールから Meteor.call() で変更できない投票システムを実装しようとしています。ログインしている場合は、誰でもいくつかの投稿に投票できます。ただし、すべてのユーザーと投稿に対して 1 回だけです。

私のクライアント側だけが次のようなものを手に入れました:

私のサーバー上:

問題は、たとえば、誰かが a を呼び出したMeteor.call('argumentvoteYes', "someID" , {$inc: {score:2}});場合、スコアを 2 増やします。ユーザーがこれを 2 回呼び出した場合、投票は 4 増えます。これを安全な方法で行う方法はありますか?

0 投票する
2 に答える
712 参照

javascript - Meteor メソッドで AutoForm に AutoValue が設定されていない

autoform、collection2、および単純なスキーマを使用して作成された挿入フォームがあります。このcreatedByフィールドには、autovalue を使用して userId が入力されます。挿入に使用するとフォームは機能しmeteor.allow()ましたが、許可をメソッドに置き換えて、ユーザーロールの検証、つまりユーザーに管理者権限があることを確認したかったのです。createdByしかし、フィールドが空であるというエラーが表示されます。

開発ツールのエラーは次のとおりです。

エラー: 400、理由: "作成者が必要です"、詳細: 未定義、メッセージ: "作成者が必要です [400]"、errorType: "Meteor.Error"}

メソッド (クライアントとサーバーで利用可能):

フォームが生成されるテンプレート:

0 投票する
1 に答える
737 参照

javascript - リアクティブ変数によって参照されるMeteorメソッドをリアクティブに呼び出す方法は?

Sessionハードコーディングされた文字列ではなく、その名前を含む変数を使用して Meteor メソッドを呼び出そうとしています。Session一度機能しますが、を介して値が変更されたときにメソッドを再実行しませんSession.set

サーバーコード:

クライアントコード:

Session値が変更された後に「新しい」メソッドをリアクティブに呼び出すにはどうすればよいですか?