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

Express框架处理POST请求时使用parseInt转换参数报错求助

报错根因与解决方案

你遇到的报错基本是以下几个场景导致的,按优先级排查修改即可:

  • 场景1:res.send直接返回数值触发状态码识别错误
    Express的res.send()方法接收数字参数时,会将其作为HTTP状态码处理,数值超出合法状态码范围就会直接抛出错误。
    修改方法:把求和结果转为字符串后再返回,将res.send(sum)替换为res.send(String(sum))即可。
  • 场景2:请求体参数不存在/名称不匹配
    你当前配置的bodyParser.urlencoded仅能解析表单格式的请求体,需要同时满足两个条件才能正常拿到req.body参数:
    1. 前端提交的表单输入框name属性必须严格和你取值的字段名一致,即两个输入框分别设置name="num1"、name="num2"
    2. 如果前端是用fetch/axios等提交JSON格式的请求,需要额外添加JSON解析中间件:
    app.use(bodyParser.json())
    
  • 场景3:参数非法导致parseInt返回NaN
    如果传入的参数为空、非数字字符串,parseInt会返回NaN,后续逻辑可能触发异常,可以增加合法性校验:
app.post('/', function (req, res) { 
    const num1 = parseInt(req.body.num1);
    const num2 = parseInt(req.body.num2);
    if (isNaN(num1) || isNaN(num2)) {
        return res.send('请输入合法的数字参数');
    }
    const sum = num1 + num2; 
    res.send(String(sum));
})

内容的提问来源于stack exchange,提问作者pintu kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:54:01