我有16次生成的Button组件,它具有localstate(reactjs),但是我需要通过使用与mongoDB的连接使其具有全局性,因此我必须从每个按钮的一个集合中获取16个文档,但我不知道我做的不好。.我能达到的最佳效果是生成整个集合16次或获取一个文档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());

最佳答案

您可以从您的要求中获得您的名字作为param

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)调用此函数,并且将根据传递的名称获得按钮响应。

关于node.js - 如何从mongoDB获取多个文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59877776/

10-10 00:42