Как я могу получить более одного документа из mongoDB? - PullRequest
1 голос
/ 23 января 2020

У меня есть компонент Button, который генерируется 16 раз, он имеет локальное состояние (reactjs), но мне нужно сделать его глобальным, используя соединение с mongoDB, поэтому мне нужно получить 16 документов из одной коллекции для каждой кнопки и Я не знаю, что я делаю плохо. Лучшее, чего я мог добиться, это либо создать целую коллекцию 16 раз, либо получить один документ 16 раз. Как я могу получить другие документы? Как 1-й, 2-й, 3-й ... 16-й. Помогите пожалуйста

Код:

router.get('/:name', (res, req) => {
const name = req.params.name

console.log('name', name);

 Buttons.find({ name: name})
.then(buttons => res.json(buttons))
.catch(err => res.status(402).send({message: 'error while fetching'})
);
});

и код функции:

  async function getButtons(name) {
try {
const response = await axios.get(`api/buttons/${name}`);
 return response, console.log(response);
catch (error) {
console.log(error)
}
}

 console.log(getButtons());

1 Ответ

1 голос
/ 23 января 2020

Вы можете получить свое имя в качестве параметра из вашего запроса

router.get('/:name', (res, req) => {

 const name = req.params.name;

  console.log('name',name); // check you are getting name or not ?

 // findOne will find your one document as per your name and return your document is better to use then find 

 Buttons.findOne({ name : name })  
.then(buttons => res.json(buttons))
.catch(err=> res.status(402).send({message : 'error while fetching recored' }))

});

для внешнего интерфейса

const getButtons = async (name) => {

    let RESULT;

     axios.get('api/buttons/${name}')
      .then( response => { RESULT = response.data } )
      .catch(err => console.log(err));

    console.log('RESULT',RESULT);

    return RESULT;

}


 console.log('data',getButtons('button1'));

Теперь вы можете вызвать эту функцию с именем getButtons (your_button_name), и вы получите ваш ответ кнопки в соответствии с переданным именем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...