Así que estoy creando un script simple que tomará una lista de usuarios de una base de datos e iterará una API a través de cada uno para agregar un hash ipfs a cada archivo json. El ejemplo de código está abajo. ¡¡¡NOTA!!! esto está envuelto en una función asíncrona.
try { let conn = mongoose.createConnection(dbURI, { useNewUrlParser: true, useUnifiedTopology: true }, function (err) { if (err) throw err }); let testArray = []; let checker = conn.model("users", guildMemberSchema); let hash = mongoose.model("wallets", wallets) let updater = mongoose.model("users", guildMemberSchema); let users = await checker.find({ 'user.on_chain': false }, 'user metadata'); for(let i=0;i<=users.length;i++){ console.log(users[i].metadata) await pinata.pinJSONToIPFS(users[i].metadata,{ pinataMetadata: { name: `${users[i].metadata.name}`, keyvalues: { wallet: `${users[i].user.wallet}`, DNA: `${users[i].metadata.DNA}` } } }).then(res =>{ console.log(res); testArray.push(res); }).catch((e)=>{console.log(e)}); }; conn.close(); return testArray } catch (err) { console.error(err) }El resultado es correcto y cuando se prueba la devolución de llamada para crear una entrada de base de datos diferente, funciona. Sin embargo, sigue arrojándome este error independientemente.
TypeError: Cannot read properties of undefined (reading 'metadata')