Не удается найти по идентификатору

#javascript #node.js #reactjs #mongodb #express

#javascript #node.js #reactjs #mongodb #выразить

Вопрос:

Поиск по индексу, возвращает результаты.

Метод:

 async index(req,res){
        const user = await Usuario.find();
        res.json(user);
    },
 

Маршрут:

 routes.get('/api/usuarios', Usuario.index);
 

но findOne({_id}) не может получить результаты, пожалуйста, помогите (я пытался изменить параметры с помощью запроса, но не работает)

метод:

 async details(req,res){
        const { _id } = req.params;
        const user = await Usuario.findOne({_id});
        res.json(user);
},
 

маршрут:

 routes.get('/api/usuarios.details/', Usuario.details);
 

Комментарии:

1. Можете ли вы записать в консоль запрос.params, тогда вы сможете указать ключ запроса

Ответ №1:

Прежде всего, вам нужно изменить свой маршрут

 routes.get('/api/usuarios/:_id', Usuario.details);
 

Затем вам нужно вызвать API, как показано ниже

 http://localhost:<your port number>/api/usuarios/<your id>
 

Затем в вашем контроллере

 Usuario.findOne(
   { _id: req.params._id }
)
 

Комментарии:

1. это работает, просто с настройкой на маршруте 🙂 спасибо богу!

Ответ №2:

 async details(req,res){
    const { _id } = req.params;
    const user = await Usuario.findOne({_id: _id});
    res.json(user);
},
 

Попробуйте выше

Комментарии:

1. получите ObjectId() из модуля ‘mongodb’ и передайте идентификатор в качестве параметра ObjectId (id) следующим образом

2. если я установлю идентификатор в коде, он вернет результат async details(req,res){ const { _id } = req.params; const user = await Usuario.findOne({_id: ‘603ff264ddeecb2750287a4d’}); res.json(user); }, но мне нужно его найти:'(