对于在NodeJS和Angular上运行的项目,我正在尝试从复选框发送包含ID(此处为名人类型)的表。该数组可以包含不确定数量的ID。我必须在服务器上进行检索才能将名人添加到媒体(电影,系列)中。
当我对发送的正文进行console.log时,我的服务器无法识别这些值(未定义)。
这是我的后端方法(来自NodeJS):
exports.addCelebritiesToMedia = (req, res) => {
const celebritiesSubmitted = req.body;
console.log(chalk.red.bold('LOG POST: ' + celebritiesSubmitted.celebritiesId));
Media.findOne({
where: {
id: req.params.mediaId
},
include: [{
model: Celebrity,
through: {
attributes: ['c_firstname']
}
}]
}).then(media => {
const mediaTemp = media;
Celebrity.findAll({
where: {
id: celebritiesSubmitted.celebritiesId
}
}).then(celebrities => {
mediaTemp.addCelebrities(celebrities).then(() => {
res.json({
message: 'Célébrités ajoutées au média !',
celebrities
})
})
}).catch((err) => {
error: err
})
})
};
我的服务(来自Angular):
postCelebritiesToMedia(mediaId: number, celebritiesId: Celebrity[]) {
console.log(celebritiesId);
this.http
.post(
`${this.apiUrl}media/addCelebritiesToMedia/` + mediaId,
celebritiesId
)
.subscribe(celebrities => {
console.log(celebrities);
});
}
我的组件:
onSelect(event: any) {
const celebrityIdChecked = event.target.getAttribute('value');
const celebrity = {
id: celebrityIdChecked
};
if (event.target.checked) {
this.celebritiesArray.push(celebrity);
} else {
const index = this.celebritiesArray.indexOf(celebrity);
this.celebritiesArray.splice(index, 1);
}
}
onAddCelebrityToMedia(form: NgForm) {
if (form.invalid) {
return;
}
this.isLoading = true;
this.activatedRoute.params.subscribe(params => {
this.mediaId = params['mediaId'];
const mediaId = this.mediaId;
const celebritiesId: Celebrity[] = this.celebritiesArray;
// console.log(celebritiesId);
this.mediaService.postCelebritiesToMedia(mediaId, celebritiesId);
});
form.resetForm();
this.router.navigate(['medias']);
}
我的服务和组件中的console.log给了我一个ID数组,但是服务器没有任何信息。我错过了什么吗?
谢谢