VSCode终端报command not found是因未重载PATH,需彻底退出VSCode进程后重启;npm install express需在项目根目录执行且非全局安装;server.listen()后须有日志输出并确认端口未被占用、路由已定义。

node -v 能跑,但 VSCode 终端报 command not found
这不是 Node.js 没装好,而是 VSCode 启动时没读到你刚配的 PATH。Windows/macOS/Linux 都会卡在这一步。
- 关掉所有 VSCode 窗口,**在任务管理器(Windows)或活动监视器(macOS)里确认
Code.exe或Code Helper进程已退出**——只关窗口不够 - 打开系统终端(不是 VSCode 内置终端),运行
which node(macOS/Linux)或where node(Windows),确认输出路径是你手动安装的目录(比如C:\Program Files\nodejs\node.exe) - 再双击启动 VSCode,按
Ctrl + `打开内置终端,立刻执行node -v—— 这次的结果才真实反映 VSCode 能否调用 - 别信插件能“补上” node:像
Node.js Extension Pack这类扩展只提供语法支持和调试 UI,**不带运行时**
npm install express 后 node app.js 报错 Cannot find module 'express'
常见于全局安装误当本地用,或 node_modules 未生成在当前项目根目录。
- 确保你在项目文件夹里执行命令:先
cd /your/project/path,再npm init -y(生成package.json),再npm install express - 检查是否多了一层目录:比如你在
/project下新建了src文件夹,然后把app.js放进src,但node_modules在/project,那运行node src/app.js就会找不到模块 -
express是运行时依赖,必须用--save(或默认的npm install express),不能用-g全局安装后直接 require - 验证:执行
ls node_modules/express(macOS/Linux)或dir node_modules\express(Windows),有内容才说明装对了位置
写完 server.listen(3000) 却打不开 http://localhost:3000
Express 启动成功不等于服务可访问,端口、路由、响应逻辑缺一不可。
- 最简验证代码必须含
app.listen(),且监听后要打印日志:app.listen(3000, () => console.log('Server running on http://localhost:3000')) - 浏览器访问前先看终端是否有 “Server running…” 输出;没输出说明进程根本没起来,可能是
app.listen()被注释或写在异步回调里没执行 - 端口被占是高频问题:启动时报
Error: listen EADDRINUSE: address already in use :::3000,换端口(如 3001)或杀掉占用进程(lsof -i :3000或netstat -ano | findstr :3000) - 路由没匹配也会 404:Express 默认不响应
/,除非你写了app.get('/', ...);如果只写了app.get('/api', ...),那必须访问http://localhost:3000/api
调试时断点不生效,控制台一闪而过
VSCode 调试依赖 launch.json 正确指向当前文件,且 Node.js 版本兼容调试协议。
- 不要点右上角 ▶️ 直接运行 —— 那走的是 Code Runner 插件,**不进调试流程**;必须用左侧「运行和调试」视图(虫子图标)
- 首次调试会提示「创建
launch.json」,选「Node.js」→「当前文件」,它会生成含"program": "${file}"的配置 - 确认断点设在可执行行:不能打在
const express = require('express')这种 require 行,要打在app.get(...)或app.listen(...)里面 - LTS 版本(如 v20.15.1)调试最稳;v21+ 某些小版本有调试器连接延迟问题,遇到断点跳过就降级试试
node -v 在 VSCode 终端里能敲出来,node_modules 真在项目根目录,app.listen() 后终端有日志,浏览器地址栏输对了路径——漏掉任意一环,都会卡住。


















