見ていただきありがとうございます。
collection.find({title_id:req.params.id}).toArray(function(err,docs){ console.log(req.params.id); //1 console.log(docs); //[] db.close(); res.render('posts/show.ejs',{title:docs,title:req.params.sub_title}); });
req.params.idはconsole.log(req.params.id)とした際に、1と表示されるため、
値は入ってはいるのですが、console.log(docs)の中身が空になっています。
他に間違いがないかを確認するため、find({title_id:1})とした際に、DBに挿入していたデータをコンソールで確認できました。
collectionオブジェクトのfindはreq.paramsを読み込めないのでしょうか?
追記:ご協力のもと解決いたしましたので、同じように悩んでいらっしゃる方がいればですが、念のため、追記いたします。
Express4.xのリファレンスにもありますが、req.params.xはString型になるため、
MongoDBのfindでNumber型(idなど)を検索する際にそのままid:req.params.xとすると、
x=123とした場合
id(Number型):"123"(String型)となってしまい、出力できません。
なのでIDなどのNumber型を検索する際は、id:Number(req.params.x)とすることで
req.params.xをString型からNumber型に変換できます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/11/23 14:52
退会済みユーザー
2017/11/24 06:05
2017/11/24 06:22
2017/11/24 06:24
退会済みユーザー
2017/11/24 06:31
2017/11/24 06:35
退会済みユーザー
2017/11/24 07:01
退会済みユーザー
2017/11/24 07:14
2017/11/24 07:38