【发布时间】:2017-11-29 04:11:10
【问题描述】:
我正在尝试将多个数据插入 mongoDB。数据来自另一个 JSON 格式的 Web 服务。我收集这些数据并存储在我的数据库中。但是,当我尝试遍历收集的项目时,我得到了问题中提到的类型错误。
// Add purchase details to DB (Userid, Productid, Category)
router.post('/addpurchased', function(req, res){
// Connect to the server
MongoClient.connect(url, function(err, db){
if (err) {
console.log('Unable to connect to the Server:', err);
} else {
console.log('Connected to Server',url);
// Get the documents collection
var collection = db.collection('purchased');
var arrProducts = req.body.products;
var userProducts = [];
for(var i = 0; i < arrProducts.length; i++){
// Get the purchased details passed from the form
var user = {userid: arrProducts[i].userid, productid: arrProducts[i].productid, category: arrProducts[i].category,
purchasetime: new Date()};
userProducts.push(user);
}
// Insert the purchase data into the database
collection.insert(userProducts, function (err, result){
if (err) {
console.log(err);
} else {
res.send("Purchase Details Added")
}
});
}
});
});
请让我知道我在这里缺少什么。
【问题讨论】:
-
arrProducts的内容是什么?在下一行设置一个断点,并在调试器中检查 arrProducts 包含的内容。你会看到它是未定义的。所以很可能在products的请求正文中没有提交任何数据 -
显然您的
req.body.products是undefined,这意味着您没有将products正确传递给您的API 方法 -
这个 arrProducts[] 的输出是什么?
-
arrProducts 没有任何内容。我已经更新了问题,请让我知道我做错了什么。
标签: json node.js mongodb express