Node.js Express app.get()在cron中不起作用

时间:2015-11-25 13:47:09

标签: javascript node.js express cron

我想制作一个10分钟的cron,它正在执行一些动作,但首先,我遇到了如何简单地调用动作的问题。我正在使用MEAN.js框架。我的方法如下:

server.js,位于底部

new CronJob('* */10 * * * *', function() {
    console.log("CronJob executed");
    app.get('/cronBarbarianAttack', function(req, res) {
    });
}, null, true);

cron.server.routes.js

'use strict';

module.exports = function(app) {
    var cron = require('../../app/controllers/cron.server.controller');

    // Cron Routes
    app.route('/cronBarbarianAttack').get(cron.barbarianAttack);

};

cron.server.controller.js

'use strict';

var mongoose = require('mongoose'),
    errorHandler = require('./errors.server.controller'),
    Game = mongoose.model('Game'),
    _ = require('lodash');

exports.barbarianAttack = function(req, res) { 
    console.log("executed");
    res.json(null);
};

但这并没有调用控制器功能。它只打印到控制台“CronJob Executed”,没有第二个“已执行”消息。问题在哪里以及我的方法有什么问题?谢谢:))

1 个答案:

答案 0 :(得分:0)

http://expressjs.com/4x/api.html#app.get

app.get()仅将您的HTTP GET请求路由到指定的回调。

没有HTTP请求,因此没有调用任何内容。

您不需要快速框架来将回调传递给cronjob。

假设您使用node-cron,因此请检查此项目的文档以正确编写cron作业