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

Express Node.js中app.get失效,router.get报‘unresolved function or method get()’错误

解决Express路由中get()未解析及app.get无法工作的问题

我之前在开发Express项目时也碰到过类似的问题,结合你的代码和描述,咱们一步步排查解决:

1. 核心问题:路由未正确挂载到Express实例

你的代码里只创建了router对象,但缺少Express应用实例的初始化,也没把路由挂载到应用上——这会导致所有路由规则都无法被系统识别,不管是router.get还是app.get都没法正常工作。

修正后的完整代码参考:

const express = require('express');
const bodyParser = require('body-parser');
// 关键:创建Express应用实例(这一步你漏掉了)
const app = express();
let router = express.Router();

// 配置body-parser,处理POST请求的表单数据(你装了但没启用)
app.use(bodyParser.urlencoded({ extended: false }));

// 定义你的GET路由
router.get('/add-product',(req, res, next)=>{
 res.send('<form action="/try" method="POST"><input type="text" name="title"><button type="submit">Submit</button> </form>');
});

// 补充POST路由处理表单提交(否则提交后会返回404)
router.post('/try', (req, res) => {
  console.log('提交的商品标题:', req.body.title);
  res.redirect('/add-product');
});

// 将路由挂载到应用实例上,让Express识别这些路由规则
app.use(router);

// 启动服务器监听端口
app.listen(3000, () => {
  console.log('服务器运行在 http://localhost:3000');
});

2. 解决IDE的“unresolved function or method get()”提示

这个提示是IDE(比如VS Code、WebStorm)无法识别Express路由方法的类型定义导致的,不影响代码运行,但会影响开发体验。你可以安装Express的类型定义包来修复:

npm install --save-dev @types/express

安装后IDE就能正确识别get()、post()等路由方法,不会再报错。

3. 额外优化建议

  • 你的package.json里有个funding依赖,这是一个用于开源项目资金支持的工具,和当前Express开发无关,可以用npm uninstall funding移除它,避免不必要的依赖冗余。
  • 如果之前依赖安装有异常,可以删除node_modules文件夹和package-lock.json文件,然后重新运行npm install,确保所有依赖都正确安装。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 06:43:13