2016-11-23 4 views
0

元のコンソール値のすべての行をnode.jsを使用してJadeに送信するにはどうすればよいですか?このコードではWCFサービスの1行だけをJadeに送信しています。node.jsを使用してJadeにテーブルのすべての行を送信する方法

var response = result['s:Envelope']['s:Body'] [0].OrderReportResponse[0].exeReport[0]; 
     console.dir(JSON.stringify(response)); 
     var marketOrder = response['a:MarketOrder']; 
     for (var i = 0; i < marketOrder.length; i++) { 
      var date = marketOrder[i]['a:SendingTime']; 
      var time = marketOrder[i]['a:TransactTime']; 
      var buyorSell = marketOrder[i]['a:Side']; 
      var orderQty = marketOrder[i]['a:OrderQty']; 
      var exchange = marketOrder[i]['a:Exchange']; 
      var contractName = marketOrder[i]['a:ContractName']; 
      var price = marketOrder[i]['a:Price']; 
      var filled = marketOrder[i]['a:mFile']; 
      var account = marketOrder[i]['a:Account']; 
      var wrkQty = marketOrder[i]['a:WrkQty']; 
      var execute = marketOrder[i]['a:ExeQty']; 
      var undQty = marketOrder[i]['a:UndQty']; 
      var type = marketOrder[i]['a:OrdType']; 
      var modifier = marketOrder[i]['a:Modifier']; 
      var trigPrice = marketOrder[i]['a:TrigPrice']; 
      var status = marketOrder[i]['a:Status']; 
      var avgPrice = marketOrder[i]['a:AvgPrice']; 
      var tif = marketOrder[i]['a:TimeInForce']; 
      var route = marketOrder[i]['a:Route']; 
      var originator = marketOrder[i]['a:Originator']; 
      var currentUser = marketOrder[i]['a:CurrentUser']; 
      var algoName = marketOrder[i]['a:AlgoName']; 
      var parentId = marketOrder[i]['a:ParentId']; 
      var tTOrderId = marketOrder[i]['a:TTOrderId']; 
      var ExchOrderId = marketOrder[i]['a:exchOrderId']; 
      //console.dir(JSON.stringify(date, time, buyorSell, orderQty, exchange, contractName, price, filled, account, wrkQty, execute, undQty, type, modifier, trigPrice, status, avgPrice, tif, route, originator, currentUser, algoName, parentId, tTOrderId, ExchOrderId)); 
      res.render('aaa', {title: date, title1: time, title2: buyorSell, title3: orderQty, title4: exchange, title5: contractName, title6: price, title7: filled, title8: account, title9: wrkQty, title10: execute, title11: undQty, title12: type, title13: modifier, title14: trigPrice, title15: status, title16: avgPrice, title17: tif, title18: route, title19: originator, title20: currentUser, title21: algoName, title22: parentId, title23: tTOrderId, title24: ExchOrderId}); 
      return res.send(); 
+0

このコードはUI – Gunjan

+0

内のすべてのデータをフェッチする方法... UIにWCFサービスの1つだけの行を送信しているTR TD =タイトル TD = TITLE1 TD = TITLE2 TD = TITLE3 TD = TITLE4 TD = TITLE5 TD = TITLE6 TD = title7 TD = title8 tdの私は、私はあなたのコードを試してみましたが、まだのようなエラーが発生したUI – Gunjan

+0

(彼らが送られた後、ヘッダを削除することはできません私のUIには何も来ていません。 – Gunjan

答えて

0

表(セル) '0' '、' '、' '、' '、' '、' '、' '、' '、' '、' '' '' '' '' '' '' '' '' '' 'WrkQty'、 'ExeQty'、 'UndQty'、 'OrdType'、 'Modifier'、 'TrigPrice'、 'Status'、 'AvgPrice'、 'TimeInForce'、 'Route'、 'Originator'、 'C​​urrentUser'、 'AlgoName '、' ParentId '、' TTOrderId」、 'exchOrderId']

tr 
     each col in cols 
       if data==='head' 
        th=col 
       else 
        td= data['a:'+col] 

テーブル THEAD +のTableRow( 'ヘッド') TBODY#1 TT 注文 の各行 - にconsole.log(行) +のTableRow(行)

0

あなたには2つの重大なエラーがあります。まず、Expressでは、ビューごとに1回だけレスポンスをレンダリングして送信できます。第2に、return呼び出しによって、ループは最初の試行の後すぐに終了するので、最初の行だけが返されます。 returnステートメントの場合は表示されません。これらの呼び出しをループでネストすると、最後の行がレンダリングされます。

ループ内でレンダリング呼び出しや応答送信をネストすることは避けてください。また、エクスプレスビュー内にループを作成することも避けてください。あなたのJadeテンプレートに25個のローカル変数を送る必要はありません。 marketOrderレスポンスオブジェクトをJadeテンプレートに送信し、テンプレート内のオブジェクトを反復処理してすべての行を結果に追加します。

あなたExpressの経路コードは次のようなものでなければなりません:あなたのジェイドテンプレート内

var response = result['s:Envelope']['s:Body'][0].OrderReportResponse[0].exeReport[0]; 
console.dir(JSON.stringify(response)); 
var marketOrder = response['a:MarketOrder']; 
res.render('aaa', {orders: marketOrder}); 
return res.send(); 

、私は行を反復処理し、コンソールにデータを記録するために、次のようにミックスインを使用してお勧めします。各列のtr値をハードコーディングする代わりに、すべての名前をミックスイン内の配列として繰り返して繰り返しました。物事をよりドライに保つために、mixinをthead行にも使用できる条件を追加しました。

mixin tableRow(data) 
     - 
     var cols = ['SendingTime','TransactTime','Side','OrderQty', 
     'Exchange','ContractName','Price','mFile','Account', 
     'WrkQty','ExeQty','UndQty','OrdType','Modifier','TrigPrice', 
     'Status','AvgPrice','TimeInForce','Route','Originator', 
     'CurrentUser','AlgoName','ParentId','TTOrderId','exchOrderId'] 

     tr 
      each col in cols 
        if data == 'head' 
         th=col 
        else 
         td= data['a:' + col] 

次に、あなたのジェイドファイルのHTML内、あなたのテーブルに行を追加し、以下のようにその行のそれぞれのデータ・サーバ側のログを記録するmarketOrder配列を反復処理:

table 
     thead 
      +tableRow('head') 
     tbody 
      each row in marketOrder 
       - console.log(JSON.stringify(row)) 
        +tableRow(row) 
+0

でデータをフェッチしています。このよう= title9 – Gunjan

+0

そして、もし私が(res.send();)の行を取り除いていれば、エラーはなくなりますが、私のUIではNoです。 console.log(JSON - その作業 – Gunjan

+0

。stringify(row)) + tableRow(row) – Gunjan

関連する問題