2015-11-25 56 views
0

我想做一个10分钟的cron,它正在执行一些操作,但起初我遇到了如何简单地调用行动。我使用MEAN.js框架。我的做法是以下几点:Node.js Express app.get()在cron中不起作用


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”,没有第二个“执行”消息。问题在哪里,我的方法有什么问题?谢谢:)

回答

0

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

app.get()唯一途径你的HTTP GET请求到指定的回调。

没有HTTP请求,所以没有被调用。

你不需要明确的框架将回调传递给cronjob。

假定您使用node-cron,所以检查的文档,以这个项目适当写入cron作业

+0

好点,现在我得到了它在不同的方式:) – user3216673