Este problema es muy molesto. Entonces, estoy haciendo una ejecución de activación programada cada 24 horas. Simplemente obtiene elementos de una colección, procesa algunos datos y luego agrega información a otra colección. El código de funcionamiento funciona incluso cuando se ejecuta la función. ¿Pero no me deja guardar porque hay errores de "tiempo de ejecución"? A pesar de que fue ejecutado perfectamente y devuelto.
Error de consola
> result (JavaScript): EJSON.parse('{"$undefined":true}') Supongo que esto tiene algo que ver con el regreso. pero cuando vuelvo null me sale esto:
> result: null > result (JavaScript): EJSON.parse('null')al intentar guardar me sale esto en la parte superior de la página:
runtime error during function validationCódigo de función:
exports = async function() { const usersCol = context.services.get("SchoologyDashCluster").db("SchoologyDashApp").collection("users"); const gradesCol = context.services.get("SchoologyDashCluster").db("SchoologyDashApp").collection("grades"); var usersCusor = await usersCol.find( ).toArray(); var gradesCusor = await gradesCol.find( ).toArray(); let insert = []; for (let i = 0; i < usersCusor.length; i++) { var user = usersCusor[i]; var userSavedGrades = gradesCusor[i].grades var currentGrades = await getGrades(user.schoologyUID, user.consumerKey, user.secretKey); var lastGraded = NaN; let index = gradesCusor[i].grades.length - 1; while (true) { if (gradesCusor[i].grades[index].changed == 1) { lastGraded = index; break } index = index - 1; } console.log(lastGraded) if (userSavedGrades[lastGraded].grades.ga == currentGrades.ga){ currentGrades = { changed : 0, time: new Date().getTime()}; } else { currentGrades = {changed : 1, grades: currentGrades, time : new Date().getTime()}; } gradesCol.updateOne( {"user" : user._id}, {"$push" : {"grades" : currentGrades}} ) } // return usersCol.find( ); return null; };La respuesta era simple y ahora me siento ignorante. Instintivo pongo el módulo imports en la parte superior del documento. Sin embargo, esto es incorrecto y deben colocarse en la función de exportación, así:
exports = function (x,y,z) { const http = context.http; return; }