2015-11-25 81 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