处理带有快速发布请求的数组

时间:2018-08-31 14:19:38

标签: node.js express mongoose

我正在使用express为我的Web应用制作API。以下是我的年度预算集合的架构。

var {mongoose} = require('../db/mongoose'); 


var budgets = new mongoose.Schema({
        year: Number, 
        categories: [{
            name: String,
            amount: Number
        }]
}); 

var Budgets = mongoose.model('Budgets', budgets); 

module.exports = {
    Budgets
};

我正尝试通过邮递员通过以下方式传递一系列类别:

{
	"year":2018,
	"categories": [{
		"name":"Logistics",
		"amount":1500
	}, {
		"name":"Finance",
		"amount":23030
	}]
}

这是我的此收藏集的发帖请求。该请求超时,未保存在数据库中。我似乎无法弄清楚该请求出了什么问题。请帮助

app.post('/annualBudgets', (req, res) => {
            var categories = req.body.categories; 
            var budgets = new Budgets({
                year : req.body.year,
            }); 
            budgets.categories.push(categories);

            budgets.save().then((docs) => {
                res.send(docs);
                console.log(docs)
            }).catch((e) => res.status(404)); 
        }); 

1 个答案:

答案 0 :(得分:1)

问题在这里

budgets.categories.push(categories);

应该是

budgets.categories = categories;
// Alternatively 
// budgets.categories.push(...categories);

因为categories已经是array