Node.js Express app.get()没有'不在cron中工作

Node.js Express app.get() doesn't work in cron

本文关键字:不在 cron 工作 没有 Express js app get Node      更新时间:2023-09-26

我想制作一个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",没有第二条"Executed"消息。问题出在哪里?我的方法出了什么问题?感谢:)

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

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

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

您不需要express框架将回调传递给cronjob。

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