使用node.js在工作日运行应用程序

时间:2016-06-19 03:47:09

标签: javascript angularjs node.js mean-stack scheduler

我正在创建一个基于Web的应用程序,我希望它只能在工作日上午9:00到下午5:00运行。我不希望我的用户能够在工作时间之前或之后以及周末执行任何功能。

我想知道是否有人能指出我如何处理这个问题的正确方向。有没有办法在Node.js中执行此操作?该应用程序允许用户发布和上传视频,非常简单的应用程序。我正在使用MEAN堆栈,MongoDB,Express.js,AngularJS和Node.js

2 个答案:

答案 0 :(得分:2)

在快速路线中,在所有其他路线之前添加类似下列代码的内容。

router.use(function (req, res, next) {
    var date = new Date();
    if(date.getDay > 0 && date.getDay < 6 && date.getHours() > 9 && date.getHours < 17){
        next();
    }else{
        res.redirect('/offlinepage');
    }
});

所有用户的请求都会在到达其他路线之前通过此中间件,如果时间/日期条件不满意,您可以将其重定向到离线页面

答案 1 :(得分:0)

感谢大家的意见。我没有使用Node.js,而是使用了AngularJS。以下是我的一个控制器作为示例。我在所有其他

中使用了相同的逻辑
myApp.controller("AddVideoController", ["$scope", "$window", "VideoService", function($scope, $window, VideoService){ 
   var day = VideoService.checkDay();
   var hour = VideoService.checkHour();

   if((day == 0 || day == 6) || (hour > 17 || hour < 9 )){
      //reroute to closed page
      $window.location.href = '/views/closed.html'; 
   }else{
      //perform rest of code
    }

在我的VideoService工厂中,这里是checkHour和checkDay函数

myApp.factory("VideoService", ["$http", "$window", function($http, $window){
  var checkDay = function(){
    var day = new Date();
    var result = day.getDay();
    return result;
  };

  var checkHour = function(){
    var hour = new Date();
    var result = hour.getHours();
    return result;
  };

  return{
    checkDay: checkDay,
    checkHour: checkHour
   }
}

这似乎真的有效并且可以解决问题!