我正在寻找一种方法来每天通过 cron 作业检查我们用户的订阅。我想为此使用 node-cron 。我不确定我应该把代码放在哪里来启动 cronjob。目前,我的设置如下:
应用程序.js:
app.listen(config.port, function() {
// Logging initialization
console.log('--');
console.log(chalk.green(config.app.title));
console.log(chalk.green('Environment:\t\t\t' + process.env.NODE_ENV));
console.log(chalk.green('Port:\t\t\t\t' + config.port));
console.log(chalk.green('Database:\t\t\t\t' + config.db.uri));
if (process.env.NODE_ENV === 'secure') {
console.log(chalk.green('HTTPs:\t\t\t\ton'));
}
console.log('--');
if (callback) callback(app, db, config);
var job1 = new cron.CronJob({
cronTime: '* * * * *',
onTick: function(){
app.get('/api/users/checkSubscriptions/').success(function() {
console.log( 'working!')
}).error(function() {
console.log( 'error!')
});
},
start: false,
timeZone: 'Europe/Paris'});
job1.start();
});
users.server.routes.js
'use strict';
module.exports = function(app) {
app.route('/api/users/checkSubscriptions/')
.get(subscriptionCheck.checkSubscriptions);
};
cronjob-subscription.server.controller
var mongoose = require('mongoose'),
User = mongoose.model('User');
exports.checkSubscriptions = function() {
User.findAll(function(err, users) {
if(err) {
console.log(err);
} else {
for(var i = 0;i< users.length; i++) {
var user = users[i];
console.log(user);
}
}
});
}
目前我只想将用户打印到控制台以检查这是否有效。使用 app.js 中的当前代码,我收到以下错误:
app.get('/api/users/checkSubscriptions/').success(function() {
^
TypeError: app.get is not a function
您能否建议我在初始化应用程序时如何在 cronjob 中进行 API 调用?