JSON没有从Node.js传递到.getJSON

时间:2014-01-16 21:46:19

标签: javascript jquery json node.js

我的客户端中有以下代码,在页面加载时执行。我的客户端页面和JS由模式我的Node.js脚本和Express

托管
    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。

但是,我浏览器中弹出的提醒框显示

“处理完成[object Object]”

为什么我的JSON没有从我的服务器端传递到我的客户端脚本?

2 个答案:

答案 0 :(得分:3)

您发回的JSON正在被解析为JavaScript对象。如果不是你做过的提醒

console.dir(data);

它会更清楚。

这就是$.getJSON()整点

答案 1 :(得分:1)

要扩展@Pointy所说的内容,您尝试在警报中显示的“数据”应该是JSON响应。如果您想在警报中看到它,请尝试使用stringify:

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