Мне нужно найти клиента по счетам по идентификатору клиента, но он показывает мне ошибку.
Я пытался получить идентификатор клиента с помощью функции "findById"
это клиентсхема:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const clientSchema = new Schema({
name: String,
mail: String,
cuil: String,
phone: Number,
address: {street: String,
number: Number,
floor: String,
flat: Number
}
});
mongoose.model('clients', clientSchema);
Схема счета:
const mongoose = require('mongoose');
const { Schema } = mongoose;
const billSchema = new Schema({
number: Number,
date: {type: Date, default: Date.now()},
type: String,
local: String,
client: {
type: mongoose.Schema.Types.ObjectId,
ref: 'clients'
},
detail: [{
quantity Number,
product: {code: Number,
number: String,
price: Number
},
undertotal: Number
}
],
total: Number
});
mongoose.model('bills', billSchema);
И наконец, мой маршрут получения
app.get('/api/bills/client/:id', (req, res) => {
console.info('Obtaining bill's client');
try{
const id = req.body.client._id;
const client = Bill.findById(id)
.populate("client","address name mail cuil phone -_id");
if (client) {
res.send(client);
} else {
res.status(404).send({ message: `Client '${id}' couldn't be found. `
});
}
} catch (err) {
console.log(err);
res.status(500).send({ message: `Internal server error.\n\n${err}` });
}
});
Я ожидал, показывает мне клиента из счета. Вывод показывает мне "Внутренняя ошибка сервера". Как я могу решить эту ошибку?
Лучше использовать функцию "найти" вместо "findById"?