【发布时间】:2021-08-28 00:43:06
【问题描述】:
以下是我productModel.js中的productShema模型:
import mongoose from 'mongoose'
const productSchema = new mongoose.Schema(
{
name: { type: String, required: true, unique: true },
image: { type: String, required: true },
brand: { type: String, required: true },
category: { type: String, required: true },
description: { type: String, required: true },
price: { type: Number, required: true },
countInStock: { type: Number, required: true },
rating: { type: Number, required: true },
numReviews: { type: Number, required: true },
},
{
timestamps: true,
}
)
const Product = mongoose.model('Product', productSchema)
export default Product
这就是我在productRouter.js 中使用它的方式:
import express from 'express'
import Product from '../models/productModel.js'
import expressAsyncHandler from 'express-async-handler'
import data from '../data.js'
const productRouter = express.Router()
productRouter.get(
'/',
expressAsyncHandler(async (req, res) => {
const products = await Product.find({})
res.send(products)
})
)
productRouter.get(
'/seed',
expressAsyncHandler(async (req, res) => {
// await Product.remove({});
const createdProducts = await Product.insertMany(data.products)
res.send({ createdProducts })
})
)
productRouter.get(
'/:id',
expressAsyncHandler(async (req, res) => {
const product = await Product.findById(req.params.id)
if (product) {
res.send(product)
} else {
res.status(404).send({ message: 'Product not found' })
}
})
)
export default productRouter
在data.products 我有 6 个产品,然后我尝试从http://localhost:5000/api/products/seed 这个地址获取数据,它显示了这个:
“E11000 重复键错误集合:amaxon.products 索引:name_1 重复键:{名称:“Nike SLim Shirt”}”
当我尝试从http://localhost:5000/api/products 获取数据时,它只给了我一种产品。我该如何解决这个问题?
【问题讨论】:
标签: node.js mongodb express mongoose