1

我刚刚使用 AWS 和 Mongolab 从解析切换到解析服务器。目前我尝试在服务器的 main.js 中向云部分编写一些验证。

添加下面的代码后,这是保存到“帖子”类之前的验证。我希望它检查登录用户的用户名是否等于指定值。但是,添加此内容后,我什至无法使用我曾经登录的任何用户登录我的应用程序。它说密码或用户名错误。

  Parse.Cloud.beforeSave('posts', function (req, res) {

  var uname = 'xxxxx';

   var user = Parse.User.current();
  user.fetch().then(function(fetchedUser){
  uname = fetchedUser.getUsername();    
   }, 
  );

  if (uname != 'michael') {
   res.error('This user is not allowed');

   } else {
   res.success();
   }

   });

我也使用下面的云代码,但它工作正常:

 Parse.Cloud.beforeSave('tweets', function (req, res) {

 if (req.object.get('name') != 'jeniffer') {
 res.error('This user is not allowed');

 } else {
   res.success();
 }

 });
4

1 回答 1

3

代码有两个主要问题。首先, Parse.User.current() 不能与 with 一起使用parse-server,其次,promise 语法有点错误。试试这个:

Parse.Cloud.beforeSave('posts', function (req, res) {
  req.user.fetch().then(function(fetchedUser){
    var uname = fetchedUser.getUsername();
    if (uname !== 'michael') {
      res.error('This user is not allowed');
    } else {
      res.success();
    }
  }, function(err) {
    res.error(err);
  });
});

此外,posts听起来像是一个奇怪的集合名称。应该是Post

于 2016-02-26T23:45:56.343 回答