Я новичок в Agenda
, и я пытаюсь использовать его в моем проекте стороны, над которым я работаю.Я пытаюсь понять, как работает планирование работ, используя пакет и различные его функции.Я подключаю к своей базе данных Mongo
сообщение о новой job
с именем hello
.Когда я запускаю свой файл, используя node agenda_dummy.js
, я получаю ошибку TypeError: url.match is not a function
.Я искал ошибку, но не повезло.Любые идеи о том, как решить эту проблему?Разместим код и мою OUTBOX
схему.
link to tutorial I am following
https://thecodebarbarian.com/node.js-task-scheduling-with-agenda-and-mongodb
ERROR THAT I AM GETTING
return url.match(/mongodb(?:\+srv)?:\/\/.*/) !== null;
TypeError: url.match is not a function`
agenda_dummy.js
var Agenda = require('agenda');
var OUTBOX = require('../helpers/outbox_Schema')
var mongoose = require('mongoose')
var connection = mongoose.connect("mongodb+srv://moe:" + process.env.MONGO_ATLAS_PW + "@sera-outlook-edxbb.mongodb.net/test?retryWrites=true", {
useNewUrlParser: true
});
let agenda = new Agenda({
db: {
address: connection,
collection: OUTBOX
}
});
async function run() {
await agenda.start();
// Define a "job", an arbitrary function that agenda can execute
agenda.define('hello', () => {
console.log('Hello, World!');
process.exit(0);
});
// Wait for agenda to connect. Should never fail since connection failures
// should happen in the `await MongoClient.connect()` call.
await new Promise(resolve => agenda.once('ready', resolve));
// Schedule a job for 1 second from now and persist it to mongodb.
// Jobs are uniquely defined by their name, in this case "hello"
agenda.schedule(new Date(Date.now() + 1000), 'hello');
agenda.start();
}
run().catch(error => {
console.error("The error is ", error);
// process.exit(-1);
});
outbox_schema.js
var mongoose = require('mongoose')
var my_outbox = mongoose.Schema({
isRead: Boolean,
subject: String,
from: String,
name: String,
receivedDateTime: Date,
sentDateTime: Date,
type: String,
conversationId: String
});
module.exports = mongoose.model("OUTBOX", my_outbox);