0

REST サービス用の meteor-app を利用できるようにしようとしています。これには、問題なく動作するパッケージ「Restivus」を使用します。しかし、流星メソッドを実行したい場合this.userIdは未定義です。

Api.addRoute('addArticle', {authRequired: true}, {
        post: function () {
            console.log(this.userId); //<-- hwuqtFXf8aKperJ5p
            try {
                Meteor.call("addArticle",this.bodyParams);
            } catch (e) {
                return {code:500,type:e.error,reason:e.reason};
            }
        }
    });

メソッド:

new ValidatedMethod({
    name: 'addArticle',
....
if (!this.userId) {
        throw new Meteor.Error(...); //is thrown
    }

私は何を間違っていますか?

4

1 に答える 1

0

Meteor メソッドでは、次のようにして現在の userId を取得します

    Meteor.userId() 

そしてそうではない

    this.userId

したがって、コードを次のように更新する必要があります

    if(!Meteor.userId()){ 
        throw new Meteor.Error(403, '403:Forbidden', 'You shall not pass!')
    }
于 2016-10-10T20:28:24.130 に答える