Tengo una aplicación alojada en Heroku ( https://trendedge.app ) (el front-end y el back-end son aplicaciones separadas) y estoy trabajando para implementar Heroku Scheduler para tareas básicas como enviar correos electrónicos y ejecutar actualizaciones en mi Base de datos MongoDB Atlas (presione una API, actualice MongoDB con Mongoose).
Para las actualizaciones de MongoDB, actualmente accedo a una ruta de administración en el front-end y las actualizaciones comienzan a ejecutarse en el back-end. Fácil PZ.
Sin embargo, para configurar el programador de Heroku, solicita un comando node.js (visto aquí)... 
... y esto tiene sentido, pero si mi conexión con el atlas de MongoDB se realiza al iniciar el servidor ('npm start', es decir, 'node index.js'), entonces, ¿cómo ejecuto un comando de nodo para actualizar MongoDB? cuando el servidor aún no se ha iniciado?
Por ejemplo, si ejecuto "node updateDB.js", se producirá un error porque no hay ningún servidor en ejecución y aún no se ha establecido la conexión con Mongo.
Cualquier idea sobre cómo puedo configurar/probar estas funciones de nodo programadas (¿sin iniciar el servidor?) Sería muy apreciada.
Puede requerir solo los inicios necesarios de index.js en schedule.js. En este caso, solo las startups de validación y mongodb
para ejecutar un solo archivo y conectarse con la base de datos para realizar alguna tarea. puedes probar de esta manera.
mongodb = require('mongodb'); config = module.exports = require("/home/node/myclass/crons/config.json"); var MongoClient = mongodb.MongoClient; ObjectId = module.exports = mongodb.ObjectID; var dbConnUrl = 'mongodb://' + config.DB_USERNAME + ':' + config.DB_PASSWORD + '@' + config.DB_HOST + ':' + config.DB_PORT + '/' + config.DB_NAME; console.log("dbConnUrl >> ", dbConnUrl); MongoClient.connect(dbConnUrl, { useNewUrlParser: true, useUnifiedTopology: true }, function (err, dclient) { if (err) { console.log("mongodb connection error >> ", err); process.exit(); } else { db = module.exports = dclient.db(); console.log("---------------------------mongodb connected-----------------------"); run(); } }); async function run() { await db.collection("notification_token").find({}).toArray(); process.exit(); }