Ok so here is the create item function.
createItem = async () => {
if (createItemFile.files.length == 0){
alert("Are you gonna select a file?");
return;
} else if (createItemNameField.value.length == 0){
alert("You need to give he file a name!");
return;
}
const nftFile = new Moralis.File("nftFile.jpg",createItemFile.files[0]);
await nftFile.saveIPFS();
const nftFilePath = nftFile.ipfs();
const nftFileHash = nftFile.hash();
const metadata = {
name: createItemNameField.value,
description: createItemDescriptionField.value,
nftFilePath: nftFilePath,
nftFileHash: nftFileHash
};
const btoa2 = function(str){
return Buffer.from(str).toString('base64');
}
// const object = {"key" : "value"}
const file = new Moralis.File("metadata.json", {base64 : btoa2(JSON.stringify(metadata))});
nftFileMetadataFile = await file.save();
console.log(JSON.stringify(nftFileMetadataFile))
// upload_function(metadata);
await nftFileMetadataFile.saveIPFS();
const nftFileMetadataFilePath = nftFileMetadataFile.ipfs();
const nftFileMetadataFileHash = nftFileMetadataFile.hash();
const Item = Moralis.Object.extend("Item");
//create new instance of the class
const item = new Item();
item.set('name', createItemNameField.value);
item.set('description', createItemDescriptionField.value);
item.set('nftFilePath', nftFilePath.value);
item.set('nftFileHash', nftFileHash.value);
item.set('nftFileMetadataFilePath', nftFileMetadataFilePath.value);
item.set('MetadataFileHash', nftFileMetadataFileHash.value);
await item.save();
console.log(item);
}
and here is the error