mongodb 发送带有mongoose和嵌套数据的Post请求

rqqzpn5f  于 11个月前  发布在  Go
关注(0)|答案(1)|浏览(144)

我使用NextJS 13和mongoose。我发送带有嵌套数据的POST请求,但由于某些原因,我无法创建带有嵌套对象的messages字段。我无法找出我在哪里犯了错误
我的POST请求:

{
    "userEmail": "[email protected]",
    "level": "3",
    "messages": [{"content":"What is your name?\n","role":"user","createdAt":"2023-10-26T18:30:11.460Z","id":"akNgQwb"},{"id":"I61VGsq","createdAt":"2023-10-26T18:30:12.605Z","content":"My name is Jack.","role":"assistant"}]
}

字符串
但是message字段没有被创建,响应看起来像这样:

{
    "userEmail": "[email protected]",
    "level": "3",
    "_id": "653d86b99d2e1c46cceb618b",
    "__v": 0
}


我的架构:

const { Schema, default: mongoose } = require('mongoose')

const writingSchema = new Schema({
  userEmail: String,
  level: String,
  messages: [
    {
      content: String,
      role: String,
      createdAt: Date,
      id: String,
    },
  ],
})

const Writing =
  mongoose.models.Writing || mongoose.model('Writing', writingSchema)

export default Writing


我的API:

import connectMongo from '@/lib/mongodb'
import Writing from '@/models/writing.model'

export default async function handler(req, res) {
  connectMongo().catch((err) =>
    res.status(400).json({ error: 'DB connection error!' }),
  )
  const { userEmail, level, messages } = req.body

  switch (req.method) {
    case 'POST':
      try {
        const newWriting = new Writing({
          userEmail,
          level,
          messages,
        })
        await newWriting.save()
        res.status(201).json(newWriting)
      } catch (error) {
        res
          .status(500)
          .json({ error: 'An error occurred while saving the writing' })
      }
      break
    default:
      res.setHeader('Allow', ['GET', 'POST'])
      res.status(400).json({ error: `Method ${req.method} not allowed!` })
      break
  }
}

uwopmtnx

uwopmtnx1#

一切都是正确的;我只需要重新启动该项目️🤦🏻‍

相关问题