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

Express结合Handlebars表单提交报Cannot GET/POST路由错误

问题排查与修复

两个报错都是路由匹配失败导致的,按下面的点逐个核对就行:

GET提交报Cannot GET /result

你写的app.get('/result')路由没生效,挨个查:

  • 改完interface.js的代码之后有没有重启Node服务?Node服务不会自动热更新路由配置,改完必须重启才能生效。
  • 检查项目入口文件(通常是app.js/server.js/index.js),有没有正确引入interface.js。如果引入的时候给路由加了前缀,比如写了app.use('/quiz', require('./interface.js')),那最终的路由地址是/quiz/result,直接提交到/result肯定匹配不到。
  • 确认/result的路由定义写在通配符路由、404兜底逻辑、静态资源托管配置的前面,避免被其他规则提前拦截。

改POST提交报Cannot POST /Result

两个问题叠加导致的:

  • 报错里的路径是大写R开头的/Result,说明你改表单method的时候手滑把action属性的值写成了大写开头的路径,和后端定义的小写/result大小写不匹配,Express路由默认区分路径大小写,直接返回404。
  • 哪怕你把路径改回小写,现在后端只写了GET方法的/result处理逻辑,根本没写app.post('/result')的路由,提交POST请求必然找不到对应处理函数。如果确定要用POST提交,必须在后端补充对应POST方法的路由代码。

额外代码优化建议

你现在直接把题目文本{{q}}当单选框的name属性,如果题目文本里有空格、特殊符号,后端会读不到提交的答案,建议给每道题配置一个不带特殊字符的唯一ID,用这个ID当单选框的name值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 00:15:38