Angular 9-PUT请求没有发送正文

时间:2020-04-02 17:44:19

标签: node.js angular typescript http

// any component
async submit(value: any) {
  await this.guildService.saveGuild(this.guild.id, value);
}
...
// guild.service.ts
saveGuild(id: string, value: any) {
  return this.http.put(`${this.endpoint}/${id}?key=${this.key}`, value).toPromise();
}

API路由

router.put('/:id', async (req, res) => {
    try {        
        const id = req.params.id;
        validateGuildManager(req.query.key, id);

        const updatedGuild = await SavedGuild.findByIdAndUpdate(id, req.body).lean();

        res.json(updatedGuild);
    } catch { res.status(400).send('Bad Request'); }
});

我尝试了许多不同的value组合,但是在API上未定义主体。

回购:https://github.com/theADAMJR/2pg-dashboard-不包括提交,但问题仍然存在

1 个答案:

答案 0 :(得分:2)

听起来像没有主体解析器中间件。不使用主体解析器,主体将始终为null / undefined。

我觉得角度不错,您可以通过查看浏览器网络“请求”标签中的请求并观察请求主体是否存在来进行验证

要进行快速尝试,请https://expressjs.com/en/resources/middleware/body-parser.html

对于koa,请尝试 https://www.npmjs.com/package/koa-bodyparser

相关问题