Post 请求:在 Mongoose 中通过数组发送值
Post Request: Sending values through arrays in Mongoose
我必须向 Mongoose 发送一些值的 post 请求。我的模型文件如下:
const local_lr_urllog_schema = new Schema(
{
domain_name:{
type: String
},
comment:{
type: String
},
local_parameters:[
{
source_url: String,
abstract:String,
non_abstract: String
}
],
}
);
//Export model
module.exports = mongoose.model('Addlogurl', local_lr_urllog_schema);
我的控制器如下:
const add_records = async (req, res) => {
const records = new Addlogurl({
domain_name:req.body.domain_name,
comment:req.body.comment,
local_parameters:[{source_url: req.body.source_url, abstract: req.body.abstract}]
});
try {
await records.save();
} catch (err) {
return next(errors);
} //res.status(messages.status.OK).json(list);
res.status(messages.status.OK).json({records: records.toObject({ getters: true })});
};
所以我的 post 人抛出 source_url 和摘要的 id 值。
Postman image
不知道哪里出错了?
问题只出在新的mongoose对象的构造上。在这里,您将 source_url 和 abstract 称为 req.body.source_url 和 req.body.abstract,这是错误的,因为它们并不直接位于请求对象的主层之下,而是仅位于 local_parameters 的第一个数组元素之下。改变它应该有所帮助。这里的问题是这些值会随着 undefined 和 undefined 值被 mongoose 删除而消失。
const records = new Addlogurl({
domain_name: req.body.domain_name,
comment: req.body.comment,
local_parameters: [
{ source_url: req.body.local_parameters[0].source_url, abstract: req.body.local_parameters[0].abstract }
]
});
如果我有另一个子数组怎么办..
local_parameters: [ { source_url: req.body.local_parameters[0].source_url, abstract: req.body.local_parameters[0].abstract } ],
remote_parameters: [ { destination_url: req.body.local_parameters[0].destination_url, abstract_des: req.body.local_parameters[0].abstract_des} ].
当我发送 remote_parameters
的请求时,这不起作用
我必须向 Mongoose 发送一些值的 post 请求。我的模型文件如下:
const local_lr_urllog_schema = new Schema(
{
domain_name:{
type: String
},
comment:{
type: String
},
local_parameters:[
{
source_url: String,
abstract:String,
non_abstract: String
}
],
}
);
//Export model
module.exports = mongoose.model('Addlogurl', local_lr_urllog_schema);
我的控制器如下:
const add_records = async (req, res) => {
const records = new Addlogurl({
domain_name:req.body.domain_name,
comment:req.body.comment,
local_parameters:[{source_url: req.body.source_url, abstract: req.body.abstract}]
});
try {
await records.save();
} catch (err) {
return next(errors);
} //res.status(messages.status.OK).json(list);
res.status(messages.status.OK).json({records: records.toObject({ getters: true })});
};
所以我的 post 人抛出 source_url 和摘要的 id 值。
Postman image
不知道哪里出错了?
问题只出在新的mongoose对象的构造上。在这里,您将 source_url 和 abstract 称为 req.body.source_url 和 req.body.abstract,这是错误的,因为它们并不直接位于请求对象的主层之下,而是仅位于 local_parameters 的第一个数组元素之下。改变它应该有所帮助。这里的问题是这些值会随着 undefined 和 undefined 值被 mongoose 删除而消失。
const records = new Addlogurl({
domain_name: req.body.domain_name,
comment: req.body.comment,
local_parameters: [
{ source_url: req.body.local_parameters[0].source_url, abstract: req.body.local_parameters[0].abstract }
]
});
如果我有另一个子数组怎么办..
local_parameters: [ { source_url: req.body.local_parameters[0].source_url, abstract: req.body.local_parameters[0].abstract } ],
remote_parameters: [ { destination_url: req.body.local_parameters[0].destination_url, abstract_des: req.body.local_parameters[0].abstract_des} ].
当我发送 remote_parameters
的请求时,这不起作用