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

时间:2019-04-20 20:25:42

标签: node.js express mongoose nested schema

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

{
    "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 )

这是我的user.js,用于在MongoDB中保存输入数据,我不知道这是否成立:

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
})
})```

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

我使用异步功能并尝试/捕获来解决此问题。也许可以...

import pandas as pd

l1 = ['Date' ,'Size', 'Price']
l2 = [['4/17/2019', 3 ,71.00],
      ['4/17/2019', 3, 70.12],
      ['4/17/2019' ,3, 69.00],
      ['4/17/2019', 3, 71.55],
      ['4/17/2019', 50, 73.45],
      ['4/17/2019', 50, 72.45],
      ['4/17/2019', 50, 71.45],
      ['4/17/2019', 50, 70.45],
      ['4/18/2019', 50, 70.45]]

df = pd.DataFrame(l2, columns =l1)

df['Date'] = pd.to_datetime(df['Date'])  #making sure its dtype is date

## sort based on price, then group it based on Date then aggregate the min and max values
sorted_grouped_agg = df.sort_values(by=['Price']).groupby('Date').agg(['min','max'])

print(sorted_grouped_agg)


#######   Output  #######

              Size        Price
            min max    min    max
Date
2019-04-17    3  50  69.00  73.45
2019-04-18   50  50  70.45  70.45

#################################

});

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

答案 2 :(得分:0)

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

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
}