MySQLデータベースから単一の行(IDを使用)をフェッチしようとするAngular 4アプリケーションがあります。 ExpressJSでNodeJSを使用しています。しかし、私は正確なURLパスを共有せずにURLからIDを取得する方法を見つけるのに苦労しています。これは、コンポーネントではなくJSONオブジェクトのみをレンダリングするWebサイトにつながります。URLを共有しないで正しいIDを取得する
server.js
app.get('api/books/:id', (req, res) => { console.log(req.params.id); });
URLがlocalhost:3000/books/3
ある場合は、コンソールは:id
を記録します。 localhost:3000/api/books/3
ただし、正しいIDをコンソールに記録します。問題は、Angularルーティングで後者をURLとして使用すると共有パスになり、動作しなくなることです。ここで
は、私は、サーバーにGETリクエストを送信するために角度のHttpModuleをを使用する方法の例です:ここで
this.http.get('api/books/:id')
.map(res => res.json())
.subscribe(data => {
this.bookDetail = data;
});
は角のRouterModuleを使用してルーティングからの私のパスです:
どの
{ path: 'books/:id', component: BookDetailComponent }
私はこの問題を解決するつもりですか?
それは魅力的に機能しました!しかし、 '' http:// localhost:3000/api/books/$ {id} ''を'' http:// localhost:3000/api/books/'+ id'に変更する必要がありました。ありがとう! – user3510657
うれしい私は助けることができました! – Matt