Я пытаюсь создать функцию editpost для моего приложения, но постоянно получаю сообщение об ошибке «тело не определено»
ReferenceError: тело не определено в EditPost (C: \ server\ controllers \ posts.js: 161: 36)
Я включил контроллер, компонент и HTML.
для контроллера
editPost(req, res) {
console.log(body);
const Schema = Joi.object().keys({
post: Joi.string().required(),
id: Joi.string().optional()
});
const { error } = Joi.validate(body, Schema);
if (error && error.details) {
return res.status(httpStatus.BAD_REQUEST).json({
msg: error.details
});
}
const body = {
post: req.body.post,
created: new Date()
};
Post.findOneAndUpdate({ _id: req.body.id }, body, { new: true })
.then(post => {
res
.status(httpStatus.OK)
.json({ message: "Post updated successfully", post });
})
.catch(err => {
return res.status(httpStatus.INTERNAL_SERVER_ERROR).json({
message: err
});
});
}
компонент post
SubmitEditedPost() {
console.log(this.editForm.value);
const body = {
id: this.postValue._id,
post: this.editForm.value.editedPost
}
this.postService.editPost(body).subscribe(data => {
console.log(data)
this.socket.emit('refresh', {})
}, err => console.log(err))
M.Modal.getInstance(this.modalElement).close();
this.editForm.reset();
}
И HTML
<div class="container">
<div id="modal" class="modal">
<div class="modal-content">
<h4>
Edit Post
<button class="button"(click)="CloseModal()"> Close </button>
</h4>
<p *ngIf="postValue"> {{postValue.post}} </p>
<form [formGroup]="editForm" novalidate>
<textarea formControlName="editedPost" class="materialize-textarea"></textarea>
<div class="modal-footer">
<button class="secondary-content deleteBtn btn">Delete</button>
<button class="btn" (click)="SubmitEditPost()" >Save</button>
</div>
</form>
</div>
</div>
</div>