2014-01-16 43 views
0

我的客戶端中有以下代碼,這是在頁面加載時執行的。我的客戶頁面和JS通過託管模式Node.js的我的腳本快捷JSON沒有從Node.js傳遞到.getJSON

initHomePage : function(options) { 
     $.getJSON('siteinfo.json', 
      function(data) { 
       //called when complete 
       alert('process complete' + data); 
      });  
    }, 

這是調用下面的Node.js

exports.get_site_setup = function (req, res) { 
var dbc; 

async.waterfall([ 
    // get a connection 

    function (callback) { 
     db.db(callback); 
    } 

    ,querylookup  
], completed); 

function querylookup(dbclient, callback) { 
    dbc = dbclient; 
    dbc.query("SELECT site_id, "+ 
       "name, "+ 
       "quicklist, "+ 
       "image, "+ 
       "image2, "+ 
       "message, "+ 
       "fbflag, "+ 
       "facebookurl, "+ 
       "twflag, "+ 
       "twitterurl, "+ 
       "contactflag, "+ 
       "contactemail, "+ 
       "eventsflag, "+ 
       "loyaltyflag, "+ 
       "loyaltyclub, "+ 
       "loyaltymessage, "+ 
       "location_id, "+ 
       "locdescription "+ 
       "FROM LOCATION_LOOKUP_ACTIVE_VIEW "+ 
       "where site_id = 7 and location_id = 8", 
      callback); 
} 

function completed (err, rows, fields) { 
    if (dbc) dbc.end(); 
    if (err) { 
     callback (err); 
    } else { 
     console.log(rows[0]); 
     res.contentType('json'); 
      res.send(JSON.stringify(rows[0])); 
    } 

} 
}; 

我的console.log被解僱,並顯示在我的預期JSON控制檯,當我期望的要求作出。

然而,在我的瀏覽器彈出警告框說

「的過程完成的翻譯:」

爲什麼不從我的服務器端傳遞給我的客戶端腳本我的JSON?

+0

'({})的toString()' – MMM

回答

3

您發回的JSON正被解析爲JavaScript對象。如果不是你提醒的是

console.dir(data); 

它會更清楚。

這是種類的整點$.getJSON()

+0

我只是做一個警報來測試我確實接收到正確的JSON我之前做。與它的東西。 – ddpishere

+1

他的觀點是,當你試圖alert()它時,'data'不再是一個JSON字符串,它已經被解析成一個原生的javascript對象。所以,你真正做的是這樣的:alert('process complete'+ data.toString())'...當你使用'.toString()'對象字面量時,你會得到'[object Object]' – Jason

1

要擴展@Pointy所說的內容,您試圖在警報中顯示的'data'應該是JSON響應。嘗試,如果你想看到它在警告字符串化如下:

alert('process complete ' + JSON.stringify(data)); 
+0

OMG..lol完全沒有出現在我的腦海裏......謝謝你! – ddpishere

+0

要繼續討論這個話題,我會在我的客戶端腳本中將它作爲JSON引用,就像我通常那樣? – ddpishere

+0

@ddpishere你的函數得到的是一個完整的JavaScript對象。 「JSON」的概念實際上更像是一個序列化方案;一旦它被解析並轉換成JavaScript對象,它只是一個普通的對象。 – Pointy