findOneAndUpdate,回调必须是一个函数,得到了[object Object],NodeJs,猫鼬错误

玛卡兰德

我正在MERN堆栈中开发一个webapp,同时遇到错误,请帮忙。当我尝试更新用户时,它给我错误,回调必须是一个函数,得到了[object Object]

这是API。

确保用户始终存在。

module.exports.addBlog=(req,res)=>{
    const {title,data} = req.body.blog;
    console.log(title,data);
    const {email} = req.body;
    const newblog ={
        title,
        data
    }
    userSchema.findOneAndUpdate(
        {email},
        {$push:{blogArray:newblog}},
        {upsert:true},
        {useFindAndModify:false}
        )
        .then(res=>console.log(res))
        .catch(err=>console.log(err));
   
    return res.json({msg:"Blog added successfully"});
}

这是用户方案。

const userSchema = new mongoose.Schema({
    firstname:{
        type:String,
        required:true,
        lowercase:true
    },
    lastname:{
        type:String,
        required:true,
        lowercase:true
    },
    email:{
        type:String,
        required:true,
        lowercase:true
    },
    password:{
        type:String,
        required:true
    },
   blogArray:[
       {
        title:{
            type:String,
             required:true
        },
        data:{
            type:String,
            required:true
        }
    }
   ]
});
汤姆·斯拉伯特

findOneAndUpdate 有3个可能的签名:

    findOneAndUpdate(
        filter: FilterQuery<TSchema>,
        update: UpdateQuery<TSchema> | TSchema,
        callback: MongoCallback<FindAndModifyWriteOpResultObject<TSchema>>,
    ): void;
    findOneAndUpdate(
        filter: FilterQuery<TSchema>,
        update: UpdateQuery<TSchema> | TSchema,
        options?: FindOneAndUpdateOption<TSchema>,
    ): Promise<FindAndModifyWriteOpResultObject<TSchema>>;
 findOneAndUpdate(
        filter: FilterQuery<TSchema>,
        update: UpdateQuery<TSchema> | TSchema,
        options: FindOneAndUpdateOption<TSchema>,
        callback: MongoCallback<FindAndModifyWriteOpResultObject<TSchema>>,
    ): void;

您正在尝试使用签名2(即使用诺言的签名),因此您需要将语法更改为:

userSchema.findOneAndUpdate(
        {email},
        {$push:{blogArray:newblog}},
        {upsert:true, useFindAndModify:false},
        )
        .then(res=>console.log(res))
        .catch(err=>console.log(err));

在这里查看所有Mongos nodejs类型

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Discord.js MongooseError:回调必须是一个函数,得到了[object Object]

错误:Route.post() 需要一个回调函数,但得到了一个 [object Object]

Node.js 错误:Route.post() 需要一个回调函数,但得到了一个 [object Object]

获得像 Route.post() 这样的错误需要一个回调函数,但在 express 中得到了一个 [object String]

错误:Route.get()需要一个回调函数,但是尽管module.exports = router,却得到了一个[object Undefined];在那里?

错误:Route.get()需要回调函数,但得到了一个[object String]

Route.delete()需要回调函数,但得到了一个[object Object]

错误:Route.get()需要回调函数,但得到了一个[object Undefined] NODE.JS + SQL

错误连接 MongoDB:错误:Route.get() 需要一个回调函数,但得到一个 [object Undefined]

类型错误:predict() 得到了一个意外的关键字参数“回调”

有猫鼬连接错误回调

从猫鼬承诺的回调函数引发的错误未捕获

Router.use() 需要回调函数但得到一个 [object Object]

TypeError:.find(...)不是一个功能nodejs猫鼬

在NodeJS cronjob中未调用猫鼬查询回调

猫鼬静态方法错误:不是函数

Route.all()需要回调函数,但得到一个[object String])=>然后显示404错误

如何解决此错误TypeError [ERR_INVALID_CALLBACK]:回调必须是一个函数

NodeJS,猫鼬-findOneAndUpdate无法从服务器运行

应该是一个组件类,得到了[object Object]

错误:Route.get()需要回调函数,但得到了[object Promise]

错误:Route.post() 需要回调函数,但得到了 [object Promise]

配置注释错误:参数'fn'不是一个函数,得到了字符串

NodeJS猫鼬-不从异步函数返回值

NodeJS TypeError 中的猫鼬模式:模式不是构造函数

猫鼬的findOneAndUpdate和upsert中的重复键错误

多久检查一次猫鼬连接状态nodejs

Connect(App)中的mapDispatchToProps()必须返回一个普通对象。而是收到了[object Promise]

我得到一个 save() is a not a function error 猫鼬