如何正确使用Parse.query.equalTo
How to properly use Parse.query.equalTo?
在我的web应用程序中,当用户登录时,他们应该看到他们制作的所有文档。然而,当我测试我的应用程序时,我看到了所有的文件,包括那些我没有做的。我相信这是因为我没有正确使用Parse.query.equalTo。
下面是我的代码: router.post('/login', function (req, res) {
var tempname = req.body.username;
var username = tempname.toLowerCase();
var password = req.body.password;
var login = Promise.promisify(Parse.User.logIn);
var promerror = Promise.reject("error");
var Files = Parse.Object.extend("File");
var query = new Parse.Query(Files);
query.include('user');
var finds = query.find;
var doc = {};
var name, url;
return login(username, password).catch(function (error) {
}).then(function (user, error) {
query.equalTo("user", Parse.User.current());
console.log(JSON.stringify(Parse.User.current()));
if (user) {
res.render('logins', { Message: "Username and/or password don't match" });
}
var temp;
}).catch(function (err) {
res.render('logins');
}).then(query.find(function (results) {
for (var i = 0; i < results.length; i++) {
var object = results[i];
var userID = object.get('user');
console.log("current user");
var codefile = object.get('javaFile');
temp = codefile.name();
name = temp.split("-").pop();
url = codefile.url();
doc[name] = url;
}
})).catch(function (error) {
promerror(error);
}).finally(function () {
res.render('filename', { title: 'File Name', FIles: JSON.stringify(doc) });
}).done();
});
当用户登录时,到数据库中检索用户制作的所有文档,并将其保存到doc
,然后将doc
发送到客户端显示。
newFile.save({ user: Parse.User.current(), fileName: newnames, javaFile: parseFile })
我不确定,但尝试将File user字段设置为对象id而不是用户对象本身。解析对象有时会返回一个指针,有时返回id,等等。因此,当您将字段设置为Parse.User.current()
时,可能会出现意想不到的行为。除此之外,你看起来正确地使用了equalTo。
否则,基本上调试云代码的唯一方法是console.log并查看日志。
作为旁注,您应该在保存每个文件之前设置ACL…这样,用户无论如何都无法查看其他用户的文件(除非这些文件是公开的)。
相关文章:
- 在javascript中接收来自mssql.query的变量
- Query JS Ext.data.Store
- Chrome扩展,Chrome.tabs.query的结果未定义
- 如何将解析云代码的query.count结果保存在变量中
- Dojo:TypeError:marketStore.query不是函数
- jQuery在单击按钮时中止所有AJAX请求(query)
- “query”是MongoDB中的保留名称吗?
- 通过JavaScript/jQuery运行PHP SQL Query以隐藏条目
- CSS Media Query 和 Javascript/jQuery 不匹配
- Google Fusion Table Javascript UPDATE Query?
- 如何使用Parse.Query检索特定对象
- JS Sequelize "Where Related" Query?
- node-mysql connection.query() returns undefined
- 单击j-query按钮时,选择不更改的列表文本
- Parse.com OR query
- 调用chrome.tabs.query后,结果不可用
- chrome.tabs.query:属性'currentWindow':想不到的
- Firebase - Deep Query orderByChild with equalTo
- Parse.com query.equalTo错误处理
- 如何正确使用Parse.query.equalTo