Тестирование API в почтальоне, дающем продукт, не является ошибкой конструктора - PullRequest
0 голосов
/ 01 марта 2020

Я работаю над REST API с Node, express и MongoDB. Я использую пн goose. Я тестирую API на Почтальоне. Когда я нажимаю на пост-запрос на конечную точку продуктов, я получаю сообщение об ошибке "message": "Product is not a constructor", а регистратор morgan дает мне статус 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
})
  

1 Ответ

1 голос
/ 01 марта 2020

Вы неправильно экспортируете модель продукта. Обновите строку экспорта в product.js следующим образом:

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

Подробнее о module.expots здесь /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...