Я пытаюсь найти товары по названию и цене. Это не выполняет ошибку во время выполнения. Но у меня есть ошибка на почтальоне.
Я только хочу найти имя или цену из продукта.
Я помещаю имя в одном методе, а цену в другом в виде параметров
это моя модель продукта:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const productSchema = new Schema({
name: String,
description: String,
brand: String,
price: Number,
availableStock: Number,
code: Number,
isPassed: Boolean,
createdAt: Date,
passedAt: Date
});
mongoose.model('products', productSchema);
И это мои маршруты продуктов
найти продукт по названию
app.get('/api/products/:name', async(req,res) =>{
try{
const name = req.params.name;
const product = await Product.findOne({product : name});
if(product){
res.send(product);
}
else{
res.status(404).send({ message: `product's name: '${name}' couldn't be
found ` });
}
}catch (err) {
console.log(err);
res.status(500).send({ message: `Internal Server Error.\n\n${err}` });
}
});
найти продукт по цене
app.get('/api/products/:price', async(req,res) =>{
try{
const price = req.params.price;
const products = await Product.find({products : price});
if(products){
res.send(products);
}
else{
res.status(404).send({message:`Products with price: '${price}'
couldn't be found`})
}
}catch (err) {
console.log(err);
res.status(500).send({ message: `Internal server error.\n\n${err}` });
}
});
Я ожидаю, что продукт будет найден по имени или цене, но в случае с именем это будет результат:
{"message": "Внутренняя ошибка сервера. \ N \ nCastError: Ошибка приведения к ObjectIdдля значения \ "P1 \" по пути \ "_ id \" для модели \ "products \" "} И, наконец, в случае цены это результат:
{" message ":" ВнутреннийОшибка сервера. \ N \ nCastError: Ошибка приведения к ObjectId для значения \ "500 \" по пути \ "_ id \" для модели \ "products \" "}