Lawrencium
Lawrencium

Reputation: 15

MongooseError: Callback must be a function, got [object Object]

 if (reaction.emoji.name === '✅') {
     if (user.id == persToProp) {
         await Reply.delete()

         var date = new Date();
         var today = date.getDate();

         await mongo().then( async (mongoose) => { //line 76
             try {
                 await marriageListSchema.findOneAndUpdate( //line 78
                 {
                     _id: message.author.id,
                 },
                 {
                     partener: persToProp,
                 },
                 {
                     marriageDate: today,
                 },
                 {
                     upsert: true,
                 }).exec();
             } finally {
                 mongoose.connection.close()
             }
         }).catch( err => {
             console.log(err);
         });

I get this error and I don't understand why

MongooseError: Callback must be a function, got [object Object] at Function.Model.$handleCallbackError (A:\DiscordBot\node_modules\mongoose\lib\model.js:4857:11) at Function.Model.findOneAndUpdate (A:\DiscordBot\node_modules\mongoose\lib\model.js:2464:19) at A:\DiscordBot\commands\propose.js:78:58 at processTicksAndRejections (internal/process/task_queues.js:93:5) at async Client. (A:\DiscordBot\commands\propose.js:76:25)

Upvotes: 0

Views: 10161

Answers (1)

Aditya DS
Aditya DS

Reputation: 103

Its a syntax error. You literally passed an object instead of a function as the error says! This is maybe what you want?

await marriageListSchema.findOneAndUpdate(
{
    _id: message.author.id,
},
{
    partener: persToProp,
    marriageDate: today,
},
{
    upsert: true,
}).exec();

You might want to take a look at the docs: https://mongoosejs.com/docs/tutorials/findoneandupdate.html

Upvotes: 3

Related Questions