VSCode不配置Express环境,只提供编辑调试能力;真正环境由Node.js+npm+Express代码构成。需验证node -v/npm -v有输出,执行npm init -y生成package.json,启动命令(如nodemon --inspect-brk=9229 app.js)须与launch.json中program和runtimeExecutable严格匹配,环境变量必须显式写入env字段。

VSCode 本身不“配置” Express.js 环境,它只提供编辑、运行和调试能力;真正的环境由 Node.js + npm + Express 代码共同构成。只要终端能跑 node app.js,VSCode 就能用——关键在于别让工具链断在中间。
确认 Node.js 和 npm 已就绪
这是所有后续操作的前提,不是“装了就行”,而是要验证路径和权限是否干净:
- 在 VSCode 内置终端(
Ctrl+`)中执行node -v和npm -v,必须返回版本号,不能报command not found - 如果用
nvm或fnm管理 Node 版本,确保终端启动时已加载对应 shell 配置(如~/.zshrc),否则 VSCode 终端可能默认用系统自带的旧版 Node - Windows 用户注意:不要混用 PowerShell 和 CMD 启动 VSCode;建议统一用 Windows Terminal + PowerShell,并在 VSCode 设置里把终端默认 shell 设为同一套
创建 Express 项目时别跳过 npm init -y
很多人直接 npm install express 就写 app.js,结果 require('express') 报错,或后续加 nodemon 时找不到模块——根本原因是没初始化项目上下文:
-
npm init -y会生成package.json,它是 npm 查找依赖、解析node_modules路径的依据 - 没
package.json时,npm install express会装到全局(或报错),而不是当前目录下的node_modules - 哪怕只是个
hello world,也先执行:mkdir myapp && cd myapp<br>npm init -y<br>npm install express
启动命令必须匹配实际运行方式
VSCode 不关心你写的是 Express 还是 Koa,它只认你终端里敲的那条命令。调试失败、热重载不生效,90% 出在这里:
- 想用
nodemon自动重启?先全局或本地装好:npm install --save-dev nodemon,然后改package.json的scripts:"dev": "nodemon --inspect-brk=9229 app.js" - 调试时 launch.json 的
program字段必须指向入口文件(如app.js),且runtimeExecutable要显式设为nodemon路径(which nodemon查),不能留空或填node - 如果用
npm start启动,launch.json 的console建议设为integratedTerminal,否则 VSCode 可能无法捕获进程信号导致热重载失效
静态资源和路由断点不触发?先看请求是否真进来了
在 app.get('/api/user', ...) 打了断点却跳过,大概率不是配置问题,而是请求压根没匹配上:
- Express 默认开启严格模式(
strict routing):/user/≠/user,多一个斜杠就 404 - 静态托管(
app.use(express.static('public')))会拦截所有未匹配路由;如果app.use(express.static(...))写在app.get()前面,而你请求的是/api/user,它不会被拦截——但如果你请求的是/index.html,那根本不会走到get回调 - 检查浏览器 DevTools 的 Network 面板,确认状态码是 200 还是 404;如果是 404,再查 Express 控制台有没有打印
Cannot GET /xxx
最常被忽略的一点:VSCode 的 launch.json 里 env 字段不继承终端环境变量,哪怕你在 shell 里 export PORT=4000,调试时 process.env.PORT 仍是 undefined——所有关键环境变量都得硬编码进 env 对象里。


















