node.js - 邮递员提供产品中的 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
})
解决方案
您没有正确导出产品模型。将导出行更新为product.js
:
module.exports = mongoose.model('Product', productSchema);
阅读更多关于module.expots
这里/
推荐阅读
- amazon-web-services - 在 x-amazon-apigateway-integration 中指定 HTTP 请求标头?
- pyspark - 如何从 Databricks 笔记本将文本文件上传到 FTP
- java - 如何从 Java 中的 consol 应用程序获取实时输出
- powerbi - 如何根据 ID 列和项目列划分同一列中的值?
- javascript - 如何在单个组件中访问事件处理程序中的相邻道具
- c++ - FindResource 按名称查找资源失败
- scikit-learn - GridSearchCV 估计器 LogisticRegression 的参数 gamma 无效
- c++ - 在课堂上使用 fstream 的问题
- php - PHP exec() 不返回任何内容
- c# - 如何重新设计我的 C# 应用程序以避免构造函数注入过载?