2017-03-24 25 views
0

私は、express.jsフレームワークとnode.jsを使用し、 "ejs"に設定されたビューエンジンを使用してプロジェクトに取り組んでいます。プロジェクトの機能は次のとおりです。
1.ユーザーからの入力を取得します。
2.入力を使用して、WebサイトのAPIへのリクエストを送信します。
3.そのAPIから特定のデータ(後で使用するIDを含む)を印刷します。
4.上記のデータで構成されるリストのアイテム(つまり「a」タグ)をクリックすると、このアイテムのIDを使用して別のリクエストを同じWebサイトに送信し、その詳細情報を取得します。項目。.ejsファイルから変数をexpress.jsに戻す

私は、ステップ4で立ち往生午前質問です:
ユーザーがアイテムをクリックしたときのNode.jsでリクエストを投稿する.ejsファイルからこのIDを送信するためにどのように?
他のやり方は単純です:response.render( "view name"、{nodeJsVar:ejsVar});しかし、それを返す方法は?
助けてくれてありがとう!

答えて

3

まず、あなたは「.ejsファイルから」すべてのデータを送信することはできません - あなたができることは、ブラウザからそれを送信することですそれは、レンダリングされたHTML(および可能であればJavaScript)を持ち、EJSではありません。

クライアント側のJavaScriptを使用すると、必要な操作を行うことができます。

標準の<a href="...">リンクを使用している場合は、変数の値をURLにルートパラメータまたはクエリパラメータとして埋め込むことで実行できます。

フォームとボタンを使用している場合は、隠れた入力をフォームに入れることができます。

AJAXを使用している場合は、リクエストのどの部分にでも挿入できます。

ちょうどそれが混乱することができますので、あなたが何であるか知っていることを確認するには - ここでX pathパラメータである:

http://localhost/something/X 

、ここXは、クエリパラメータである:

http://localhost/something?x=X 
0

(あなたはjQueryのを使用すると仮定して)これを試してください:すべての

$.ajax({ 
    url: '/routename_to_handle_id', 
    type: 'POST', 
    data: { id: id } 
}).done(function(response){ 
//callback to handle if it's successful 
}) 
関連する問題