Поскольку вы хотите запросить что-то в базе данных, это означает, что вы уже создали это и сохранили в нем некоторые данные.
Однако перед сохранением данных в базе данных вы должны создать свою модель, которая должна быть создана в папке моделей в Product.js (названия моделей должны начинаться с заглавной буквы в соглашении).Затем вы должны импортировать его на странице выше, чтобы получить к нему доступ.Вы хотите сделать запрос по product.id, но по какому идентификатору продукта?
Поскольку в вашей функции req
, это означает, что вы что-то публикуете.Если вы установите правильные настройки в app.js, вы сможете получить доступ к req.body
, который является информацией, публикуемой на стороне клиента.
app.js // настройка для анализа (чтение илидоступ) req.body
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
Теперь мы можем набрать req.body.id
это должен быть ваш код:
function createSubscription (req, res, next) {
const product=Product.findOne({plan.id:req.body.id})
.
.
}
Если вы заметили, я не ставил это plan.id в кавычках. Потому что метод findOne()
принадлежит модели Product , и эта модель относится к используемому вами пакету.(В mongoose вы запрашиваете без кавычек, в mongodb клиенте вы запрашиваете в кавычках)
findOne()
- это асинхронная операция, означающая, что результат не придет к вам сразу.Поэтому вы всегда должны хранить его в блоке try / catch .
function createSubscription (req, res, next) {
try{
const product=Product.findOne({plan.id:req.body.id})
}
catch(error){console.log(error.message)} //every error object has message property
.
.
}
Наконец, поскольку вы запрашиваете только один объект, вам не нужно его сортировать.