2016-11-25 65 views
0

我已經回到基礎,嘗試創建一個調用REST API的簡單示例,接收一些JSON並使用Jade渲染HTML中的JSON數據。使用Jade渲染JSON響應

我已經嘗試了很多方法來解決這個問題,但無法得到任何工作。

我需要將哪些代碼添加到我的主腳本文件(以下是lxrclient.js)以實現此目的。我知道我需要添加快速模塊,並呈現視圖,但無論誰可能的方法,我嘗試過,我無法讓它工作。我還添加了我正在使用的玉文件。非常感謝任何人都可以提供這方面的幫助。

//this is my main script file lxrclient3.js 
 

 
var http = require('http'); 
 
var express = require('express'); 
 
var app = express(); 
 

 
app.set('view engine', 'jade'); 
 

 
var options = { 
 
    host: '41.193.214.130', 
 
    port: 2510, 
 
    path: '/eiftidemo/clt_list', 
 
    method: 'GET' 
 
}; 
 

 

 
http.request(options, function(res) { 
 
    var body = ''; 
 
    //node of these statemnst excecute 
 

 
    res.on('data', function(chunk) { 
 
     body += chunk; 
 
    }); 
 

 
    res.on('end', function() { 
 
     var clientsData = JSON.parse(body); 
 
     debugger; 
 

 
    }); 
 
}).end(); 
 

 
app.get("/clientlist", function(req, res){ 
 
    res.render('listlxr', {clientd: clientsData}); 
 
}); 
 

 
var server = app.listen(3000, function() { 
 
    console.log('Our App is running at http://localhost:3000'); 
 
});

這是我的看法玉

html 
 
    head 
 
    title List of Clients 
 
    link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css") 
 
    body 
 
    div.row 
 
     div.col-md-3 
 
     div.col-md-6 
 
     div.panel.panel-primary 
 
      div.panel-heading.text-center 
 
      h1 Client List for Hyposure 
 
      div.panel-body 
 
      table.table 
 
       each clients in clientsData 
 
       tr 
 
        td.media 
 
        span.bg-info= clients.clientName 
 
        td.media 
 
        span.bg-info= clients.clientSurname

THX給任何人誰可以幫助

回答

0

首先,當你說玉我希望你的意思是帕格,如果沒有,你應該更新到最新版本的帕格。

現在,將數據發送到您的引擎模板,以使您發送JSON對象,如此;

res.get("/", function(req, res) 
{ 
    res.render("page.html", {greet : "Hello"}); 
} 

這是一種渲染頁面和發送一些數據的標準方式。

現在在你的帕格(Jade(Same thing))模板中,你可以像這樣訪問發送的變量;

html 
head 
    title List of Clients 
    body 
    h1 #{greet} <!-- This will print "Hello" --> 

這應該給你如何來呈現數據到一個網站的基本想法,你也可以發送嵌套的對象,你只是工作,它在這個例子中,同樣的方式,但你指出正確的密鑰。因此,舉例來說,如果你要發送的下列對象:

{ 
    greet: { 
    message : "Hello", 
    who : "Adrian" 
    } 
} 

然後你可以從使用打印值:

#{greet.message} #{greet.who} 
+0

許多THX。我的問題是,當我添加res.get(「/」,功能(請求,水庫) res.render(「page.html」,{問候:「你好」}); } 我的結束雄蕊最後一次,它給了我一個錯誤,它無法找到包含JSON的變量 – fastleap

+0

您究竟在哪裏添加了它?從您提供的代碼中沒有使用Express作爲您的服務器基礎。在這種情況下,變量res未定義爲這應該是存儲快速服務器的變量 – Adriani6

+0

我修改了腳本,希望獲得正確的流並呈現視圖。不幸的是,我回到了之前所有嘗試過的地方,因爲我無法獲取客戶端數據JSON的視圖,因爲它似乎消失後的http.request部分。所以我得到一個錯誤,在該app.get行說客戶端數據沒有定義!hohum ... – fastleap