設定したidのデータのみ表示させる
① サンプルチュートリアル
https://docs.microsoft.com/ja-jp/azure/cosmos-db/mongodb/tutorial-develop-mongodb-react
② 上記チュートリアルソースコード
https://github.com/Azure-Samples/react-cosmosdb
上記チュートリアルに沿って、Azure上のMongoDBよりデータの読み出し等を行うWebアプリを構築していますが、指定したidのみのデータを、MongoDBより抽出したいと思っています。
②ソースコード内 react-cosmosdb/server/hero-service.js
javascript
1const Hero = require('./hero-model'); 2const ReadPreference = require('mongodb').ReadPreference; 3 4require('./mongo').connect(); 5 6function get(req, res) { 7 const docquery = Hero.find({}).read(ReadPreference.NEAREST); 8 docquery 9 .exec() 10 .then(heroes => { 11 res.json(heroes); 12 }) 13 .catch(err => { 14 res.status(500).send(err); 15 }); 16}
上記の
function get(req, res) { const docquery = Hero.find({})
を
function get(req, res) { const docquery = Hero.find({id:指定の値})
とすれば、データベースからデータベースサーバ上で指定した値のidに一致したデータのみを抽出できるのですが、その指定の値を、Reactのjsファイルから指定し、データベースサーバへ渡す方法を教えていただきたいです。
用途としてはReact上で認証情報を取得し、そのid等に一致するデータのみをデータベースサーバより取得する等です。
具体的には②ソースコード内の
react-cosmosdb/src/components/Heroes.js 等でapiの呼び出し時にid等を指定できれば
大変ありがたいです。
詳しい方おりましたら、ご教授のほどよろしくお願いします。
追記
react-cosmosdb/server/hero-service.jsで、React上のUser.jsxファイルから変数を読み込みはできるのですが、
User.jsx
function Username(){ const username = 'testuser' return (username); };
hero-service.js
const username = require('../src/User.jsx'); //GET function get(req, res) { const user = require('../src/User.jsx').Username(); console.log('hero-service : '+ user);
User.jsxで、ログインユーザー情報を取得する下記関数を入れると失敗してしまします。
function Username(){ const {instance , accounts} = await useMsal(); const username = accounts[0].username; return (username); }
あなたの回答
tips
プレビュー