应使用 axios 而非已废弃且不支持 promise 的 request 模块;常见错误包括未正确引入或安装 axios、post 时缺少 content-type 头及后端未启用 express.json() 中间件。

直接用 axios,别碰 request 模块——它已废弃,且默认不支持 Promise,写异步逻辑容易卡死或漏 catch。
为什么 axios.get() 会报错 “Cannot read property 'get' of undefined”
这是最常见的起步错误:没正确引入模块,或者项目没装依赖。
-
const axios = require('axios')必须写在文件顶部,且确保当前目录下有node_modules/axios - 运行过
npm install axios;如果用 pnpm 或 yarn,得对应执行pnpm add axios或yarn add axios - 检查
package.json里dependencies是否真有"axios": "...",没有就重装 - VS Code 终端要处在项目根目录(即含
package.json的那层),否则require找不到模块
POST 请求发出去但后端收不到 req.body
后端(比如 Express)默认不解析 JSON body,你发的是字符串,它当 raw data 丢掉了。
根据 package.json 中的 engines 字段自动检测 Node.js 版本需求,未安装 nvm 时自动安装并切换至对应版本。支持 Windows、macOS、Linux。适用于 Node.js 项目开发、版本切换和环境配置。
- 前端必须设请求头:
headers: { 'Content-Type': 'application/json' } - 发送时用
JSON.stringify()包一层,例如:axios.post(url, { username: 'a', password: 'b' })—— 这个写法内部自动处理了序列化和 header,更安全 - 后端 Express 需启用中间件:
app.use(express.json())和app.use(express.urlencoded({ extended: true })),缺一不可 - 如果用原生
http模块发 POST,body 得手动拼 query string 或写 chunk,极易出错,不推荐
async/await 调试时断点跳过、await 不停住
不是代码问题,是 VS Code 启动配置没对上 Node.js 的模块系统和 source map 行为。
- 确认
package.json有"type": "module"?有就用.mjs后缀或加"--enable-source-maps"参数 -
.vscode/launch.json中必须含"sourceMaps": true,且"runtimeArgs"加上["--enable-source-maps"](Node ≥ v14.18) - 别用
node index.js直接跑——调试器无法注入;必须通过 VS Code 的「运行 → 启动调试」触发 - 断点打在
await axios.post(...)行,而不是.then()里,后者是回调,不是 async 函数体
最常被忽略的其实是 Content-Type 和后端中间件的匹配关系:前端发 JSON,后端没开 express.json(),哪怕请求成功返回 200,req.body 也是空对象。这个坑不看网络面板里的 Request Payload 和后端日志,根本发现不了。










