【发布时间】:2021-12-19 06:40:11
【问题描述】:
我正在使用 MERN 堆栈开发票务系统模块。我想在创建 Ticket 时创建一个名为“message”的数组。
当用户点击 Create Ticket 按钮时,我们会在 MongoDB 中存储一些数据,如订单 ID、服务、付款、交易 ID、主题以及用户消息(用户可以简要地写一下该问题)。存储后,管理员可以回复该消息,因此我们需要在一个文档中创建这些论文。
我可以存储其他字段,例如订单 ID、服务名称、主题,但我不知道如何创建用于存储消息的数组。
请帮帮我。
这是我的 Ticket Scheema:
const mongoose = require('mongoose');
const User = require('./userScheema');
const TicketScheema=new mongoose.Schema({
subject:{
type:String
},
request:{
type:String
},
orderID:{
type:Number
},
descs:[
{
desc:
{
type:Array,
required:true
}
}
],
name:{
type:String
},
role:{
type:String
},
payment:{
type:String
},
transactionID:{
type:Number
},
status:{
type:String,
default:"Not Answered"
},
date:{
type:Date,
default:Date.now
},
user:{
type:mongoose.Schema.Types.ObjectId,
ref:User,
required:true
}
})
const Ticket=mongoose.model("Ticket",TicketScheema);
module.exports=Ticket;
快速路由器:
router.post("/submitTicket",authenticateUser,async(req,res)=>{
try {
let user=req.root_user[0]._id.toString();
let role=req.root_user[0].role.toString();
let name=req.root_user[0].name.toString();
let {subject,request,orderID,desc,payment,transactionID}=req.body;
let resp=await new Ticket({
subject,
request,
orderID,
desc, //here desc is the user message, want to store it as array
payment,
transactionID,
user,
role,
name
})
resp.save();
res.status(201).send(resp)
} catch (error) {
res.status(400).send("Unable to create Ticket")
}
})
前端:
const createTicket =async()=>{
let resp=await fetch('/submitTicket',{
method:"POST",
headers:{
"Content-Type":"application/json"
},
body:JSON.stringify({
subject,request,orderID,desc:Desc,payment:payment1,transactionID:TransactionID
})
})
if(resp.status==201)
{
alert("Ticket Created")
}
}
我是MERN的新手,请帮助我
【问题讨论】:
-
第一次创建工单时,将描述字段存储为包含第一个描述的数组,或者如果没有值存储为空数组。稍后的描述,可以在 update 操作中添加到数组中。
-
description 字段是必填的,当用户第一次创建工单时,我们应该将它存储为一个数组。然后管理员可以查看它并重播该描述(消息)。
-
@prasad_ 请帮帮我