So I am making a simple script that will take in a list of users from a database and iterate an api through each one to add an ipfs hash to each json file. The code example is bellow. NOTE!!! this is wrapped in an async function.
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) }
The output is correct and when testing the callback to create a different database entry it works. However it keeps throwing me this error regardless.
TypeError: Cannot read properties of undefined (reading 'metadata')