0
我試圖發送數據來更新我的MongoDB數據庫。客戶端是Angular,它正確地發送數據。我通過郵件攔截數據檢查了這一點,所以我知道PUT請求有我的數據。嵌套的數組對象在PUT請求角度表達後被剝離
{val1: 'Some Val', val2:[{v21: 'test', v22: 'test', v23: true}]}
我沒有發送val3在我的請求對象中。但我的服務器上,通過快速覆蓋,我的請求對象是:
{val1: 'Some Val', val2:[], val3:{v3:'test'}}
我已設置:
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json({limit: '5mb'}));
我的控制器代碼:
var obj1 = new ObjService(vm.obj);
obj1.$update(function (response) {
//Returns nothing coz val2.length === 0
}, function (errResponse) {
});
我的模型
var ObjSchema = new Schema({
val1:{
type:String,
default:''
},
val2:[{
v21:{
type: String
},
v22:{
type: String
},
v23:{
type: Boolean
}
}],
val3:{
v3:{
type:String
default: 'test'
}
}
});
我的快遞中間件
exports.update = function (req, res) {
console.log('Inside update');
console.dir(req.obj); //Shows val2:[]
var o = req.obj;
if(o.val2.length >0){
//Processing val2 - Never gets to this point
}else{
res.status(400).send({
message: 'Val2 is empty'
});
}
});
我不會在這一點上做任何請求對象的。更新對於val1和val3也絕對正確。
這可能是什麼原因造成的?
編輯:嘗試PUT請求POST和更改的模型轉換爲
var NestSchema = new Schema({
v21:{
type: String
},
v22:{
type: String
},
v23:{
type: Boolean
}
});
var ObjSchema = new Schema({
val1:{
type:String,
default:''
},
val2:[NestSchema],
val3:{
v3:{
type:String
default: 'test'
}
}
});
郵差仍呈現val2的對象,但在服務器上請求對象仍顯示空數組。
請向我們展示處理此問題的快遞中間件 –