2

Meteor js は初めてで、公式ガイドhttp://guide.meteor.com/methods.html#method-formに従ってフォームを作成しようとしています。mdg:validation-error に基づく検証用の mdg:validated-methodパッケージと aldeed:simple-schema を使用して、検証エラー メッセージをクライアントに返すことをお勧めします。このガイドでは、検証を処理するためにこのコードを提案しています

Invoices.methods.insert.call(data, (err, res) => {
    if (err) {
        if (err.error === 'validation-error') {
            // Initialize error object
            const errors = {
                email: [],
                description: [],
                amount: []
            };

            // Go through validation errors returned from Method
            err.details.forEach((fieldError) => {
                // XXX i18n
                errors[fieldError.name].push(fieldError.type);
            });

            // Update ReactiveDict, errors will show up in the UI
            instance.errors.set(errors);
        }
    }
});

しかし問題は、fieldError.type、fieldError.name、およびsimple-schema からの人間が読める最初のメッセージのみが err.error で利用できることです。シンプルスキーマで翻訳されたメッセージとフィールドラベルを使用して、わかりやすい検証エラーメッセージを取得します。そのため、特にメッセージに最小/最大制約が含まれている場合など、「必須」のオブジェクト プロパティ名だけを取得することは受け入れられません。シンプルスキーマの検証コンテキストを取得して、人間が読めるエラーの完全なリストを取得する方法が見つかりませんでした。

だから私の質問は、クライアントで完全なエラーメッセージを取得できますか?どうすればよいですか? それとも、私がやろうとしていることを達成するためのより良い方法がありますか?

前もって感謝します

4

1 に答える 1