Uma*_*mil 5 javascript parse-platform parse-cloud-code
我在从查询内部引用“User”对象时遇到问题。我有以下代码:
Parse.Cloud.define("getTabsBadges", function(request, response) {
var UserObject = Parse.Object.extend('User');
var user = new UserObject();
user.id = request.params.userId;
// Count all the locked messages sent to the user
var receivedMessagesQuery = new Parse.Query('Message');
receivedMessagesQuery.equalTo('status', 'L');
receivedMessagesQuery.equalTo('toUser', user); // THIS LINE GENERATES THE ERROR
receivedMessagesQuery.count({
// more code here
});
});
Run Code Online (Sandbox Code Playgroud)
我使用 CURL 调用该函数,但总是收到以下错误:
{"code":141,"error":"Error: Cannot create a pointer to an unsaved
ParseObject\n at n.value (Parse.js:14:4389)\n at n
(Parse.js:16:1219)\n at r.default (Parse.js:16:2422)\n at e.a.value
(Parse.js:15:1931)\n at main.js:9:25"}
Run Code Online (Sandbox Code Playgroud)
我在另一个项目中使用完全相同的代码,唯一的区别是我没有计算对象,而是找到它们并且它工作正常。我还验证了这两个项目中的表的列类型Pointer<_User>。是什么导致了这个问题?
该错误消息意味着您正在尝试使用Parse DB 中不存在的Cannot create a pointer to an unsaved对象。
使用var user = new UserObject();,您将创建一个新的用户对象。在将其保存到 Parse 之前,您无法在查询中使用它。
不要创建新的 User 对象并设置它的objectId,而是对 User 对象进行查询。参见下面的代码:
Parse.Cloud.define("getTabsBadges", function(request, response) {
var UserObject = Parse.Object.extend('User');
var query = new Parse.Query(UserObject);
query.get(request.params.userId, {
success: function(user) {
// Count all the locked messages sent to the user
var receivedMessagesQuery = new Parse.Query('Message');
receivedMessagesQuery.equalTo('status', 'L');
receivedMessagesQuery.equalTo('toUser', user); // THIS LINE GENERATES THE ERROR
receivedMessagesQuery.count({
// more code here
});
},
error: function(error) {
// error fetching your user object
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3975 次 |
| 最近记录: |