我有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/