node.js - 使用 Express Post 请求处理数组

标签 node.js express mongoose

我正在使用express 为我的网络应用程序制作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
};

我试图通过以下方式使用 postman 传递一组类别:

{
	"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)); 
        }); 

最佳答案

问题就在这里

budgets.categories.push(categories);

应该是

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

因为categories已经是一个数组

关于node.js - 使用 Express Post 请求处理数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52117441/

相关文章:

javascript - 避免 Node 中的回调 hell

mongoose - Meanjs 无法将图像保存到嵌套模式中

javascript - 无法使用 Mongoose 从对象数组中删除元素

javascript - Sublime Text 中的 node.js 输出中的输出被 chop

随着流量增加,Node.js EMFILE 错误

javascript - Express + EJS - 将参数传递给 EJS View

javascript - Webpack 的定义插件 : variable is not defined

javascript - MongoDB 嵌套对象的聚合过滤

javascript - toLocaleString() 在 Pug View 中无法正常工作

node.js - 从 Express 堆栈中删除中间件的正确方法?