Express后端Post接口请求体返回Undefined问题排查求助
商品新增POST接口无法获取请求体数据排查求助
我是后端新手,在实现商品新增的POST接口时遇到问题,无法获取请求体数据,控制台打印name字段显示undefined。以下是完整代码,请求帮忙排查:
Model代码
const mongoose = require('mongoose'); const productSchema = new mongoose.Schema({ name: { type: String, }, ... }); const Product = mongoose.model('Product', productSchema); module.exports = Product;
Controller代码
const Product = require('../models/productModel'); ... const createProduct = (req, res) => { const { name, ... } = req.body; console.log(name); ... }; module.exports = { ... createProduct, ... };
控制器中
console.log(name)返回undefined。
Routes代码
const express = require('express'); const router = express.Router(); const productController = require('../controllers/productController'); ... // POST /api/products router.post('/', productController.createProduct); ... module.exports = router;
index.js代码
const express = require('express'); const bodyParser = require('body-parser'); // route imports const productRoutes = require('./routes/productRoutes'); // local imports const coonectDB = require('./db.js') // Set up Express app const app = express(); app.use(express.json()); // Set up body-parser middleware app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); // Set up routes app.use('/api/product', productRoutes); // Start the server app.listen(3000, () => { console.log('Server listening on port 3000'); }); coonectDB() .then(() => { console.log('db connection succeeded.') }) .catch(err => console.log(err))
请求与日志信息
- Postman请求:发送POST请求到
http://localhost:3000/api/product,请求体采用Raw JSON格式,包含name等字段。 - VS Code终端日志:控制台输出
undefined(对应打印的name字段)。
内容的提问来源于stack exchange,提问作者Chard
相关产品推荐
相关产品推荐

