如何在 post 路由中将字符串数组分配给猫鼬模型的定义
How to assign an array of String to definition of mongoose model in post route
我正在做一个关于 Node.JS 的项目,我在那里创建了一个用户模式,其中有一个名为 interests 的 属性 包含字符串数组,同时将请求值分配给 interests key不取请求的值属性.
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: []}]
你正在传递 ["web developement","Games"]
一个字符串数组。
注意:根据您的评论,
这个.
interests : [{
type : String,
default : [],
required : true
}]
在你的架构中应该是这个。
intrests : {type: Array, required : true, default : [] }
我正在做一个关于 Node.JS 的项目,我在那里创建了一个用户模式,其中有一个名为 interests 的 属性 包含字符串数组,同时将请求值分配给 interests key不取请求的值属性.
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: []}]
你正在传递 ["web developement","Games"]
一个字符串数组。
注意:根据您的评论, 这个.
interests : [{
type : String,
default : [],
required : true
}]
在你的架构中应该是这个。
intrests : {type: Array, required : true, default : [] }