使用Postman向Express应用发送POST请求失败,报错Cannot POST /bb%0A
问题解决步骤
一、先处理Postman的URL错误
你看到的Cannot POST /bb%0A提示里,%0A是URL编码后的换行符,说明你在Postman地址栏输入请求地址时,不小心在/bb后面多加了换行(比如误按了回车)。
- 直接把Postman里的请求URL改成
http://localhost:3000/bb,确保末尾没有多余的空格或换行。
二、修复Node.js代码里的两处错误
你的代码还有两个关键问题,就算URL正确也无法正常获取JSON数据:
- 缺少JSON解析中间件:Express默认不会自动解析JSON格式的请求体,必须先添加中间件开启这个功能。
- 错误的请求体获取方式:
await req完全无效,req不是Promise对象,要获取POST的JSON数据直接用req.body就行。
修正后的完整代码
const express = require('express'); const app = express(); // 关键:添加JSON解析中间件,否则req.body会是undefined app.use(express.json()); // POST route app.post('/bb', (req, res) => { try { const newData = req.body; // 直接获取JSON请求体 console.log('Received new data:', newData); res.status(200).json({ message: 'Data received successfully' }); } catch (err) { res.status(500).json({ error: err.message }); } }); app.listen(3000, () => console.log('Server started on port 3000'));
内容的提问来源于stack exchange,提问作者user1592380
相关产品推荐
相关产品推荐

