Node.js新手路由问题:点击HTML表单提交未触发/users接口日志
故障排查与修复方案
问题根因
你定义的Express路由规则和启动的HTTP服务没有绑定关联,所有请求都被http.createServer的全局回调拦截,无论访问什么路径都直接返回index.html内容,/users路由的处理逻辑完全没有被触发。
修复方案
直接使用Express内置能力完成静态服务和路由处理,删除冗余的原生HTTP服务逻辑,修改后的app.js代码如下:
const express = require('express') const app = express() const path = require('path') // /users路由配置 app.get('/users',(req,res)=>{ res.send("data page") console.log("data page") }) // 静态资源服务,自动匹配根目录下的index.html作为首页 app.use(express.static(path.join(__dirname, './'))) // 启动服务 app.listen(process.env.PORT || 3000, () => { console.log('服务运行在端口3000') })
修改后重启服务,提交表单即可触发控制台日志打印。
内容的提问来源于stack exchange,提问作者Karthik
相关产品推荐
相关产品推荐

