我在nodejs中创建一个应用程序,在那里我希望用户创建自己的文本字段类似于一个在谷歌表单中,例如,我创建的第一个字段作为名称,下一个字段作为年龄也是一个文本字段和第三个作为性别下拉框也持有标题以及下拉选项。
我的问题是我如何构建猫鼬数据库模式来保存这些信息。在给定时存储字段名和输入。
另外,我如何对下拉菜单执行此操作呢?
const mongoose = require('mongoose')
const questionaireSchema = new mongoose.Schema({
author: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: true,
},
name: {
type: String,
required: [true, 'Name is required'],
},
email: {
type: String,
required: [true, 'Email is required'],
unique: true,
lowercase: true,
validate: [validator.isEmail, 'Please enter a valid email'],
},
phone: {
type: Number,
required: [true, 'Phone is required'],
unique: true,
},
gender: {
type: String,
required: true,
enum: ["male", "female", "prefer not to say"]
}
})
const Questionnaire = mongoose.model('Questionnaire', questionaireSchema)
module.exports = Questionnaire
与上述不同,我希望作者能够提供他所需的输入字段,这些字段可以不同于其他作者的输入字段。帮助别人。
我希望我解释得很清楚。
在questionaireSchema
中添加以下字段
formData: [{
label : String,
value : String
}]
现在保存req.body.formData中formData
字段中的所有动态表单数据
交货。req.body.formData
[
{
label: "name",
value : "XYZ"
},
{
label: "email",
value : "XYZ@mail.com"
},
]