gpt4 book ai didi

node.js - 如何在后路由中将字符串数组分配给 Mongoose 模型的定义

转载 作者:太空宇宙 更新时间:2023-11-04 01:29:15 24 4
gpt4 key购买 nike

我正在 Node.JS 上的一个项目上工作,在那里我创建了一个用户架构,它有一个名为“interests”的属性,其中包含 String 数组,在使用请求值分配键时,“interests”键不会采用请求属性的值。

POST 路线:

app.post('/users', (req,res) => {
var user = new Users({
name : req.body.name,
email : req.body.email,
phone : req.body.phone,
designation : req.body.designation,
address : req.body.address,
intrests : req.body.intersts //Here I have added an array of String
});

user.save().then((userData) => {
res.status(200).send(userData);
}).catch((e) => {
res.status(400).send(e);
})
});

用户架构

var UserSchema = new Schema({
name : {
type : String,
required : true,
trim : true,
minlength : 5,
unique : true
},
email : {
type : String,
required : true,
trim : true,
minlength : 5,
validiate : {
validator : validator.isEmail,
message : 'Email is Valid'
}
},
phone : {
type : Number,
minlength : 10,
required : true
},
designation : {
type : String,
minlength : 4,
required : true
},
address : {
type: String,
required : true
},
intrests : {
type : Array,
default : [],
required : true
}
});

我已输入以下内容...

{
"name" : "Surya",
"email" : "suryanarayan88@outlook.com",
"phone" : "8895591782",
"designation" : "Java Developer",
"address" : "186/1783 Mahadev Nagar",
"intrests" : ["web developement","Games"]
}

我得到的结果是...

{
"_id": "5d031d27acc9840c7c3997a0",
"name": "Surya",
"email": "suryanarayan88@outlook.com",
"phone": 8895591782,
"designation": "Java Developer",
"address": "186/1783 Mahadev Nagar",
"intrests": [
null
],
"__v": 0
}

最佳答案

您的架构用于存储数组或字符串是错误的

应该是

... // rest of schema code
address : { type: String, required : true},
intrests : {type: Array, required : true, default : [] }

由于您之前的interests架构需要一个对象数组[{interest: []}]

并且您传递了["webdevelopment","Games"]一个字符串数组。

注意:根据您的评论,这个。

interests : [{
type : String,
default : [],
required : true
}]

您的架构中应该是这样。

intrests : {type: Array,  required : true, default : [] }

关于node.js - 如何在后路由中将字符串数组分配给 Mongoose 模型的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56591395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com