使用Insomnia发POST请求时Mongoose返回Null的排查与修复
排查POST请求返回Null的路由相关问题
路由导出/挂载常见错误排查
路由导出方式错误
确保auth.js中正确导出路由实例,避免导出格式错误导致挂载失败:// auth.js 正确导出示例 const express = require('express'); const router = express.Router(); router.post('/get-username', async (req, res) => { // 你的查询逻辑 }); module.exports = router;不要用
module.exports = { router }这类错误格式导出,否则挂载时无法正确识别路由。路由挂载路径不匹配
在index.js中挂载路由时,要保证挂载前缀和Insomnia的请求路径一致:// index.js 正确挂载示例 const authRouter = require('./auth'); app.use('/api/auth', authRouter);比如挂载前缀是
/api/auth,那Insomnia的请求路径应该是http://localhost:xxx/api/auth/get-username,路径不匹配会导致请求无法命中目标路由,返回空值。请求方法不匹配
确认auth.js中用的是router.post()而非router.get(),请求方法和路由定义不一致时,服务器无法正确处理请求,可能返回Null。
辅助排查点
- 检查
index.js是否配置了解析JSON请求体的中间件,否则无法获取req.body中的参数:app.use(express.json()); - 核对用户Schema的
username字段名和MongoDB中存储的字段名完全一致(MongoDB区分大小写),避免查询时因字段名不匹配返回空值。
内容的提问来源于stack exchange,提问作者John Lopez
相关产品推荐
相关产品推荐

