You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

POST发送SigFox DEVKIT温度至Node.js服务器时出现Cannot GET /sigfox错误

问题描述

我尝试通过POST方法将SigFox DEVKIT的温度数据发送至Node.js服务器,但直接通过浏览器访问服务器的/sigfox端点时出现Cannot GET /sigfox错误。不过SigFox后台的回调记录显示数据已成功发送,且本地运行的服务器与线上托管的服务器均出现该问题。

排查分析
  • 触发Cannot GET /sigfox的核心原因:浏览器地址栏访问默认发送GET请求,但你的Node.js服务器仅为/sigfox端点配置了POST请求的处理逻辑,未处理GET请求,因此返回该错误。而SigFox后台是按配置的POST方法发送数据,所以回调显示发送成功。
  • 需额外确认的细节:
    • 服务器代码中是否仅用app.post('/sigfox', ...)注册路由,未添加app.get('/sigfox', ...)
    • SigFox回调的请求方法是否确实设置为POST,且请求格式(如JSON/表单)与服务器的解析中间件匹配
解决方案
  1. 添加GET路由用于测试(可选)
    如果需要通过浏览器快速验证端点是否存活,在服务器代码中补充GET路由处理:
// 保留原有的POST路由逻辑
app.post('/sigfox', (req, res) => {
  console.log('Received SigFox data:', req.body);
  res.status(200).send('Data received');
});

// 添加GET路由用于浏览器访问测试
app.get('/sigfox', (req, res) => {
  res.status(200).send('Sigfox endpoint is active. Send POST data to this URL.');
});
  1. 确保服务器正确解析POST数据
    如果SigFox发送的数据未被服务器正确接收,需确认已添加必要的解析中间件:
const express = require('express');
const app = express();

// 解析JSON格式的POST数据(适配SigFox的JSON回调格式)
app.use(express.json());
// 解析表单格式的POST数据(若SigFox用表单格式发送)
app.use(express.urlencoded({ extended: true }));

// 你的POST路由
app.post('/sigfox', (req, res) => {
  // 处理数据逻辑,比如存储到数据库
  res.sendStatus(200);
});

app.listen(process.env.PORT || 3000, () => {
  console.log('Server running');
});
  1. 验证SigFox数据是否真的到达服务器
    在POST路由中添加日志输出,查看服务器控制台是否有SigFox发送的打印信息。如果没有:
  • 检查SigFox回调的URL是否包含正确的域名/IP、端口(托管服务器需确保端口对外放行)
  • 确认SigFox回调的请求头、参数格式与服务器解析逻辑匹配
附相关信息

SigFox回调结果:[此处粘贴回调的具体返回内容,如状态码200、响应信息等]
SigFox设置截图:SigFox回调配置截图
Node.js服务器代码:

// 粘贴你的完整服务器代码

内容的提问来源于stack exchange,提问作者William R. Vazquez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:25:34