Node.js 我定义了嵌套模式,当我填充输入时,它不返回任何内容,也不保存在Mongodb中

Node.js 我定义了嵌套模式,当我填充输入时,它不返回任何内容,也不保存在Mongodb中,node.js,express,mongoose,nested,schema,Node.js,Express,Mongoose,Nested,Schema,我定义了嵌套模式,但当我发送输入数据时,什么也不返回, 如何解决此问题? 这是我的结果: { "message": "handeling post request to /user-api", "CreatedUserInfo": { "_id": "5cbb7fbaad28fe209099a57c" } } 这是我的代码: const userEduSchema = new mongoose.Schema( { eduLevel

我定义了嵌套模式,但当我发送输入数据时,什么也不返回, 如何解决此问题?
这是我的结果:

{
    "message": "handeling post request to /user-api",
    "CreatedUserInfo": {
       "_id": "5cbb7fbaad28fe209099a57c"
    }
}
这是我的代码:

const userEduSchema = new mongoose.Schema(
    {
        eduLevel : String ,
        eduField : String,
        eduInst :String,
        eduCity :String,
        eduDate :Date,
        proposalTitle :String
}
)

const allEduSchema = new  mongoose.Schema(
    {
        bsc: userEduSchema, 
       master: userEduSchema,
        phd:  userEduSchema , 
}
) 

module.exports =  mongoose.model('Users', allEduSchema )
这是我在MongoDB中保存输入数据的
user.js
,我不知道这是不是真的:

const userModels = require('../../models/userModels')

router.post('/', (req , res, next) => {
const user = new userModels({
 _id : new mongoose.Types.ObjectId,
eduLevel :req.body.eduLevel,
eduField :req.body.eduField,
eduInst :req.body.eduInst,
eduCity :req.body.eduCity,
eduDate :req.body.eduDates,
proposalTitle :req.body.proposalTitle,
})
user.save().then(result =>{
    console.log(result)
}).catch (err => {
    console.log(err)
})
    res.status(201).json ({
        message:'handeling post request to /user-api',
        CreatedUserInfo : user
})
})```

您是否定义了
userSchema
?否则,您将尝试导出一个不存在的架构。同样,如果您尚未定义
userSchema
,并且希望导出
allEduSchema
,请将模型文件的最后一行替换为以下内容:

const EduSchema = mongoose.model("EduSchema", allEduSchema);
module.exports = EduSchema;

在创建新用户之前,需要使用“用户”moongose模式。就像dimitris tseggenes说的

我使用异步函数并尝试/catch来处理这个问题。也许您可以

router.post("/", async (request, response) => {
try {
   const user  = new Users({new user's data here..... });
   const  result = await user.save();
    response.send(result);
} catch (error) {
    response.status(400).send(error);
}
}))


try-catch可以避免一些意外错误并进行处理。

问题在于定义获取输入的方式,我必须定义嵌套对象,并在其中放置请求主体以及定义嵌套模式

bsc:{
bscEduLevel :req.body.bscEduLevel,
    bscEduField :req.body.bscEduField,
    bscEduInst :req.body.bscEduInst,
    bscEduCity :req.body.bscEduCity,
    bscEduDate :req.body.bscEduDate,
    bscProposalTitle :req.body.bscProposalTitle
}

谢谢你,是的,我在我的代码中定义了它,并在我的问题中编辑了它,但它仍然没有返回任何内容:(你想做什么?你尝试过Users.find()吗?)?我想把我的输入保存在数据库中,我发布它们,但是当我获取数据时,它不会返回任何东西,而在数据库中只保存_id!!!我看到你创建了一个
userEduSchema
模型,而不是
allEduSchema
模型。你必须使用这个来代替
module.exports=mongoose.model('Users',userEduSchema)
。此外,您不需要创建_id。不幸的是,不,当我定义简单模式时,它可以工作,但当定义为嵌套模式时,它不能工作。我认为问题在我的模式中,但不知道在哪里!?