Я использую ExpressJS с Postgres / Knex / Objection и VueJS на внешнем интерфейсе.У меня есть пользователи, группы и членство. St Таблица членства связывает пользователей и группы.
Я пытаюсь удалить членство из vue, отправив groups_id
и users_id
на экспресс-маршрут.
Все работает в Почтальоне, но req.body
пусто на экспресс-стороне.
На стороне Vue вот мой метод Vue delete
:
async deleteMembership() {
await MembershipsService.deleteMembership({
membership: {
groupId: this.group.id,
userId: this.$store.getters.user.id
}
});
this.$emit("membership-deleted");
console.log('membership has been deleted');
}
вот мойMembershipsService
:
import Api from '@/services/Api'
export default {
fetchMemberships () {
return Api().get('memberships')
},
...
deleteMembership (params) {
console.log('these are the request params: ', params);
return Api().delete('memberships/', params)
}
}
Вот маршрут со стороны экспресса:
router.delete('/', async (req, res) => {
// deletes a membership
console.log('this is the req: ', req);
await Membership
.query()
.delete()
.where('users_id', '=', req.body.membership.userId )
.andWhere('groups_id', '=', req.body.membership.groupId )
res.json({
success: true, message: 'membership deleted'
});
});
Это тело работающего почтальона с просьбой удалить до http://localhost:8000/api/memberships:
{
"membership":
{
"userId": 8,
"groupId": 1
}
}
Вот тело нерабочего запроса на Vue.js:
these are the request params: {membership: {…}}membership: groupId: 1userId: 8__proto__: Object__proto__: Object
Это ошибка на стороне Express:
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'userId' of undefined
Это req.body
объект в экспрессе:
body: {}