解决:
以下答案的变化需要发生才能得到解决,尽管如果使用nodemon / grunt-nodemon,其中1.2.x由于某种原因使控制器输出静音,因此如果使用控制台测试它将无法工作。 1.3.x具有修复,更新和解决任何依赖性问题。我最终将下面的固定代码移到我的app = express()行下面。并将任何议程ui行与我的app.use()中间件的其余部分放在一起。
另外,如果使用议程-ui,在尝试命中/ agenda-ui端点时会引入一些“无法读取未定义的属性”的分解。不知道为什么还有一个开放的错误报告。
原始邮寄
我知道我在这里是个问题。我已经构建了一个应用程序,并希望将“议程”用于后端作业调度。应用程序工作正常,没有在server.js中的议程行。它直接在github页面上说明没有推荐的布局,所以试着通过chuckin'它在我的server.js中测试基本功能起初看起来是可行的。
Nodemon启动并立即崩溃,但没有任何跟踪或信息。启动:
[nodemon] v1.2.1 [nodemon]随时重启,输入
rs
[nodemon]正在观看:app / views / / 。 gruntfile.js server.js config / / * .js app / ** / * .js
[nodemon]从node --debug server.js
开始 [nodemon]应用程序崩溃 - 在开始之前等待文件更改...
我把议程代码放在最后我会说在经过一些基本的测试之后,应用程序不会崩溃,直到这2行被取消注释。我想也许这与我的连接字符串有关,因为这是我已经连接到主应用程序的数据库的名称。但是我又一次没收信息了。
agenda.schedule('in 10 seconds', 'greet the world', {time: new Date()});
agenda.start();
'use strict';
/**
* Module dependencies.
*/
var init = require('./config/init')(),
config = require('./config/config'),
mongoose = require('mongoose'),
chalk = require('chalk'),
Agenda = require('agenda');
/**
* Main application entry file.
* Please note that the order of loading is important.
*/
// Bootstrap db connection
var db = mongoose.connect(config.db, function(err) {
if (err) {
console.error(chalk.red('Could not connect to MongoDB!'));
console.log(chalk.red(err));
}
});
// Init the express application
var app = require('./config/express')(db);
// Bootstrap passport config
require('./config/passport')();
// Start the app by listening on <port>
app.listen(config.port);
// Expose app
exports = module.exports = app;
// Logging initialization
console.log('Application started on port ' + config.port);
/////--------TESTING----------------
var agenda = new Agenda({
db: {
address: 'mongodb://localhost/consultations',
collection: 'emailQueue'
//options: {
// ssl: true
//}
}
});
agenda.define('greet the world', function(job, done) {
console.log(job.attrs.data.time, 'hello world!');
done();
});
agenda.schedule('in 10 seconds', 'greet the world', {time: new Date()});
agenda.start();
console.log('Wait 10 seconds...');
//////------------------------
答案 0 :(得分:1)
试试这个
agenda.on('ready', function() {
agenda.define('greet the world', function(job, done) {
console.log(job.attrs.data.time, 'hello world!');
done();
});
agenda.schedule('in 10 seconds', 'greet the world', {
time: new Date()
});
agenda.start();
});
我也有像
这样的数据库var agenda = new Agenda({
db: {
address: 'localhost:27017/test' //default collection agendaJobs
}
});
希望它有所帮助