首页 > 解决方案 > 邮递员提供产品中的 API 测试不是构造错误

问题描述

我正在使用 Node、express 和 MongoDB 开发 REST API。我正在使用猫鼬。我正在 Postman 上测试 API。当我在产品端点上点击发布请求时,我遇到了错误"message": "Product is not a constructor",摩根记录器给了我状态 500。我所指的教程有点旧。这是我的代码。

// products.js file
router.post('/', (req, res, next) => {
    const product = new Product({
        _id: mongoose.Schema.Types.ObjectId(),
        name: req.body.name,
        price: req.body.price
    }); 
    product.save().then(result => {
        console.log(result);
    })
    .catch(err => console.log(err));
    res.status(201).json({      
        message: 'Handling post request to /products',
        createdProduct: product
    });
});

// product,js schema file
const mongoose = require('mongoose');

const productSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    name: String,
    price: Number
});

exports.modules = mongoose.model('Product', productSchema);

// app.js file
mongoose.connect('mongodb://localhost:27017/shop', {
    useNewUrlParser: true,
    useUnifiedTopology: true
})
  

标签: node.jsmongodbexpressmongoose

解决方案


您没有正确导出产品模型。将导出行更新为product.js

module.exports = mongoose.model('Product', productSchema);

阅读更多关于module.expots 这里/


推荐阅读