我在这里是新手,正在学习Express,虽然我认为我在正确的轨道上,但目前我在POST
方法上遇到了一些问题。我现在遇到的情况如下:
当我向一个http文件发送POST
请求时,我收到一个空对象{}
。此外,我通过Thunder客户端进行了测试,但是我收到了400错误或其他http错误。
Content-Type: application/json
在http文件中的路径下不起作用。
GET
方法正常工作。
这是我一直在使用的代码:
const express = require('express'); const { stories } = require('../data/books.js').infoBooks; const routerStories = express.Router(); routerStories.use(express.json()); routerStories.post('/', (req, res) => { const newBook = req.body; stories.push(newBook); res.send(JSON.stringify(stories)); });
我已经尝试解决了几天。尽管我已经做了很多研究,但我还是无法解决它。 请您给予您的观点和经验,以便能够解决这个问题。
我在你的代码中发现了一些问题。我假设你粘贴了原始代码,所以这里是你需要改变的地方。
1.) 我不认为这一行是有效的javascript代码,或者如果它是的话,它有点奇怪。
const { stories } = require('../data/books.js').infoBooks;
如果infoBooks
是一个包含故事的对象,只需导入该对象2.) 你不需要将路由设置为json,因为路由默认存在该方法,并且会接受json作为有效的响应
3.) 可能你没有使用不同的路由名称,而另一个路由正在使用相同的字符串文字。
你没有提供足够的信息,所以你使用路由本身可能还有其他问题,但根据你发布的内容,这些是我发现的所有问题。希望能帮到你!