我有用于Header的嵌套对象架构,我能够使用request参数在post请求中获取嵌套对象,但是我无法在架构中存储嵌套对象的值
header.js模式文件
const mongoose = require('mongoose')
const headerSchema = mongoose.Schema({
register: {
name: {
type: String
},
url: {
type: String
}
},
logo: {
image: {
type: String,
},
altText: {
type: String
},
url: {
type: String
},
}
})
module.exports = mongoose.model('header', headerSchema)
header.js路由器文件
router.post('',(req, res)=>{
//console.log(req.body)
const header = new headerModel({
register:{
name: req.body.name,
url: req.body.url
},
logo:{
image: req.body.image,
altText: req.body.altText,
url: req.body.url
}
})
console.log(header)
})
module.exports = router
JSON
{
"register":{
"name":"Register",
"url":"/register"
},
"logo":{
"image":"/imagePath/ab.png",
"alttext":"Home",
"url":"/"
}
}
我需要将name和url的值分别存储在路由器文件的register和signin对象中
在登录控制台时,“路由器文件”中的标题不包含寄存器或徽标
答案 0 :(得分:0)
因为您以错误的方式从JSON获取数据,但尚未保存标头。您可以通过以下方法解决它:
let header = new headerModel({
register:{
name: req.body.register.name,
url: req.body.register.url
},
logo:{
image: req.body.logo.image,
altText: req.body.logo.altText,
url: req.body.logo.url
}
})
header.save(function (err, doc) {
// Do some thing you want
})
相关信息可以找到here。