node.js - 使用 req 参数解析对象并保存在猫鼬模式中
问题描述
我有一个嵌套对象,我可以正确获取它,但无法将嵌套对象值存储在模式中。以下是我的代码片段:
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
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)
JSON
{
"register":{
"name":"Register",
"url":"/register"
},
"logo":{
"image":"/imagePath/ab.png",
"alttext":"Home",
"url":"/"
}
}
我需要将 name 和 url 的值分别存储在 Router File 中的 register 和 signin 对象中
登录控制台时路由器文件中的标题不包括注册或徽标
解决方案
因为您以错误的方式从 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
})
相关信息可以在这里找到。
推荐阅读
- amazon-s3 - 在 EC2 中使用 AWS S3 文件网关,为什么它只能在公有子网中工作,而不能在私有子网中工作?
- maven - PMD - maven、sonarqube 和 java 版本之间的混淆
- javascript - 如果连接脚本,则不会触发 Angular DOMContentLoaded
- python - 加速 AES_CBC 模式(使用 AES_ECB 模式)
- python - 从 Colab 上的 summarizer 导入 Summarizer 出错
- c# - 如何使用阻塞的 stream.Read() 停止线程?关于多线程
- qt - 如何通过单击 Qt Widget Application 中的按钮转到其他表单
- node.js - 无法通过节点中的 post 方法将 csv 导入 mongo
- html - 为 SVG 图案背景设置动画
- c++ - 崇高的文本语法突出显示损坏