Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何实现自动成绩规则_Javascript_Node.js_Sails.js - Fatal编程技术网

Javascript 如何实现自动成绩规则

Javascript 如何实现自动成绩规则,javascript,node.js,sails.js,Javascript,Node.js,Sails.js,我今天遇到了一个挑战。我想做的是为我的网站自动实现系统。我想每天检查用户是否满足获得新成就的要求。这些需求不会存储在数据库中,为了增加新的成就,我只想定义一个新的javascript对象/原型,类似这样的东西 我在和风帆合作,我不知道我的方法是否正确。我正在制作一个带有方法CheckforAchievents的服务,我希望它检查所有用户,以及他们是否满足定义的每个成就的要求。如果他们这样做了,我会在我的表user_actification中添加一条记录。以下是我迄今为止所做的尝试: export

我今天遇到了一个挑战。我想做的是为我的网站自动实现系统。我想每天检查用户是否满足获得新成就的要求。这些需求不会存储在数据库中,为了增加新的成就,我只想定义一个新的javascript对象/原型,类似这样的东西

我在和风帆合作,我不知道我的方法是否正确。我正在制作一个带有方法CheckforAchievents的服务,我希望它检查所有用户,以及他们是否满足定义的每个成就的要求。如果他们这样做了,我会在我的表user_actification中添加一条记录。以下是我迄今为止所做的尝试:

exports.checkForAchievements = function(callback) {

  var AchievementsValidator = function(achievement, user) {
    this.achievement = achievement;
    this.user = user;
    this.validation = function() {
      return true;
    };
    this.giveAchievement = function() {
      UserAchievement.findOrCreate({ user: this.user, achievement: this.achievement}, { user:  this.user, achievement: this.achievement })
      .exec(function(err, userAchievment) {});
  }
  };

  //Example badge code, validation returns true if the user has at least 50 posts on the website
  var FiftyPosts = function() {
    this.validation = function() {
      Post.count({ user: this.user }).exec(function(err, count) {
        if (count >= 50) {
          return true;
        }
        else {
          return false;
        }
      })
    };
  };

  //Loop in users and execute this code for each 
  FiftyPosts.prototype = new AchievementsValidator(22, user); // 22 would be the achivement in database
  if (FiftyPosts.validation) {
    FiftyPosts.giveAchievement();
  }
  callback();

};
有可能用这个密码找到什么地方吗?我觉得这会很混乱,因为我需要在最后一个循环中写下每一个成就。此外,上面的代码工作不正常,我无法在徽章上执行验证

注意:性能不是问题,因为此代码不会经常运行。我只希望这是可扩展的,这样我就可以添加新的成就,而不会有太多麻烦。 多谢各位

编辑:问题似乎不够清楚,所以你来:

如何让FiftyPosts.validation在上述代码中使用正确的方法?它不使用上述任何AchieventsValidator、FiftyPosts

如果你足够了解sails.js,你能告诉我在服务中这样做是不是一个好主意吗


我不希望人们审查我的代码,我希望人们帮助我找到一个适合我的框架和需要的解决方案。谢谢。是的,但你基本上只是在问人们如何才能使你的代码更好。这与您遇到的特定问题无关。@TravisWebb听起来代码工作不正常:此外,上面的代码工作不正常,我无法在徽章上执行验证。这对于代码审查来说是离题的。这个问题对于代码审查来说是离题的。请不要建议迁移到那里;用户不想在那里问他的问题,他没有要求代码审查。如果你觉得这个问题需要改进才能成为一个好问题,我建议你要么进行编辑,要么留下评论,解释提问者如何改进他的问题。