gpt4 book ai didi

javascript - 如何正确使用Parse.query.equalTo?

转载 作者:行者123 更新时间:2023-12-03 09:56:40 24 4
gpt4 key购买 nike

在我的网络应用程序中,当用户登录时,他们应该看到他们制作的所有文档。然而,当我测试我的申请时,我看到了所有文件,包括我没有制作的文件。我相信这是因为我没有正确使用 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 })

最佳答案

我不确定,但尝试将文件用户字段设置为对象 ID,而不是用户对象本身。解析对象有时会返回指针,有时会返回 id 等。因此,在将字段设置为 Parse.User.current() 时,您可能会遇到意外行为。除此之外,您看起来正确使用了 equalTo。

否则,基本上调试云代码的唯一方法是console.log并查看日志。

顺便说一句,您应该在保存每个文件之前设置它的 ACL...这样,用户无论如何都无法查看其他用户的文件(除非这些文件是公开的) .

关于javascript - 如何正确使用Parse.query.equalTo?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717909/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com