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" になりました。一体何が起こっているのですか?