0

Parse のクラウド ホスティング プラットフォームで奇妙な問題が発生しています。システム内のすべての「プロバイダー」に関する情報を表示するルートがあります。Provider には、User オブジェクトへの Pointer である列があります。これは特別な Parse.User オブジェクトです。

私の目標は、プロバイダーが指すすべてのプロバイダーとユーザー情報を取得することです。クエリに「include」メソッドを使用すると、簡単に見えます。

ルート コードは次のようになります。

exports.index = function(req, res) {
  var providersQuery = new Parse.Query('Provider');
  providersQuery.include('user');
  providersQuery.find().then(function(providers) {
    console.log(providers); //for debugging
    res.render('providers/index', { providers: providers });
  });
};

ここで物事が奇妙になります。上記のログ ステートメントは、すべてのユーザー データを含むすべてのプロバイダーを示しています。

[{ "address": "123 Main St.", "city": "Anytown", "zip": "77777",
"user":
  { "email": "john.smith@example.com", "firstName": "John", "lastName": "Smith", "objectId": "abcd123", "__type": "Object", "className": "_User" }
}]

__type が「Object」であることに注意してください。ただし、私の見解では、ユーザー オブジェクト データは切り捨てられ、__type、className、および objectId フィールドのみが表示されます。

//index.ejs
<%- JSON.stringify(providers) %>

結果は次のとおりです。

[{ "address": "123 Main St.", "city": "Anytown", "zip": "77777",
"user":
  { "objectId": "abcd123", "__type": "Pointer", "className": "_User" }
}]

ユーザーに関するすべての情報が失われました!! __type は "Pointer" になりました。一体何が起こっているのですか?

4

1 に答える 1

0

どうやら JSON.stringify を Parse オブジェクトで呼び出すと、「含まれている」オブジェクトが「ポインタ」自身に返されます。これには何らかの正当な理由があると確信していますが、不便であることは確かです。

于 2014-12-30T17:01:53.793 に答える