Node.js 通过API将对象数组填充到Mongoose
目前,我在使用Mongoose通过API使用array发布数据时遇到了一些问题 当前,此数据显示在我的控制台中:Node.js 通过API将对象数组填充到Mongoose,node.js,api,express,post,mongoose,Node.js,Api,Express,Post,Mongoose,目前,我在使用Mongoose通过API使用array发布数据时遇到了一些问题 当前,此数据显示在我的控制台中: taskName: 'name', word: 'word2', wordDesc: 'description', tag: [ { text: 'word0' }, { text: 'word1' }, { text: 'word2' } ] } 我需要使用单独的值将标记数组推送到数据库中,这样我就可以将每个单独的单词发布/定位到HTML中,以供以后使用 目前,我将整
taskName: 'name',
word: 'word2',
wordDesc: 'description',
tag: [ { text: 'word0' }, { text: 'word1' }, { text: 'word2' } ] }
我需要使用单独的值将标记数组推送到数据库中,这样我就可以将每个单独的单词发布/定位到HTML中,以供以后使用
目前,我将整个阵列添加到我的数据库集合中,这将为我提供数据库中的以下数据:
"word": "[object Object],[object Object],[object Object],[object Object]"
如何循环遍历数组中的每个项并将其分别插入数据库
API代码
router.post('/task', function (req,res) {
var task = req.body.tag;
var taskDesc = req.body.wordDesc;
var taskName = req.body.taskName;
console.log(req.body);
var newTask = new Task ({
tags:[{word:task}],
wordDesc: taskDesc,
taskName: taskName
});
newTask.save(function(err){
if (err) {
return res.send(err);
}
return res.json(newTask);
});
});
MongoDB模式
var taskSchema = mongoose.Schema({
tags: [{
word : {type: String, default: ""}
}],
wordDesc : {type: String, default: ""},
taskName : {type: String, default: ""}
});
如果我理解你的问题,你可以这样做:
...
var newTask = new Task();
newTask.wordDesc = taskDesc;
newTask.taskName = taskName;
wordTasks.forEach(word=>{
newTask.tags.push(word);
});
newTask.save(function(err){
...
我们最终从您的示例中获得了一些灵感,代码最终如下图所示,功能如我们所愿:
var word = req.body.tag;
var taskDesc = req.body.wordDesc;
var taskName = req.body.taskName;
console.log(req.body);
var newTask = new Task();
newTask.taskName = taskName;
newTask.wordDesc = taskDesc;
for (var i = 0; i < word.length; i++) {
console.log(word[i].text);
newTask.tags.push(word[i]);
}
var word=req.body.tag;
var taskDesc=req.body.wordDesc;
var taskName=req.body.taskName;
控制台日志(请求主体);
var newTask=新任务();
newTask.taskName=taskName;
newTask.wordDesc=任务描述;
for(变量i=0;i