使用ThunderClient与NodeJS测试POST接口报错Cannot POST /api/block求助
问题原因与解决方法
核心问题
你收到Cannot POST /api/block错误的原因很明确:
- 代码里只定义了
/api/block的GET路由,没有对应的POST路由 - 你在ThunderClient中发起POST请求的目标地址是
/api/block,但代码里的POST路由实际是/api/mine
两种解决方式
方式1:修正ThunderClient的请求地址
把POST请求的URL改为http://localhost:3000/api/mine,同时确保请求体是JSON格式,示例:
{ "data": "测试区块数据" }
发送请求后,会自动重定向到/api/block返回区块链数据。
方式2:添加/api/block的POST路由
如果业务逻辑需要POST到/api/block,可以在代码中添加对应的路由:
app.post('/api/block', (req, res) => { const {data} = req.body; // 调用区块添加逻辑 blockchain.addBlock({data}); // 返回自定义响应,或保持重定向逻辑 res.json({ success: true, message: "区块已添加", blockchain: blockchain }); });
额外注意事项
- 确保ThunderClient的请求头中
Content-Type设置为application/json,否则body-parser无法解析请求体 - 检查
Blockchain.js中的addBlock方法是否能正确处理传入的data参数
内容的提问来源于stack exchange,提问作者krish
相关产品推荐
相关产品推荐

