大型JSON数据未在控制台中显示

时间:2014-12-15 09:10:32

标签: json node.js

我正在使用node.js并创建了一个模块来从sql server数据库中获取数据。数据以JSON格式检索。 这是代码

b.js

var mssql = require('mssql');

var config = {
    user: 'sa',
    password: 'scott',
    server: 'MSSQL2008',
    database: 'AdventureWorks',
    stream: false
};

var msconnection = new mssql.Connection(config, function (err) {
    if (err) console.log(err);
});

        module.exports.getCustomersDetails = function (callback, id) {
            var request = new mssql.Request(msconnection);

            //Add Parameters to the SP 
            if (id != null) {
                request.input('ID', id);
            }

            request.execute('CUSTOMER_DETAILS_GET', function (err, recordsets, returnValue) {  // get data
                if (err) console.log(err);

                responseContent = {
                    recordDataKey: 'data',
                    data: recordsets[0]
                };
                callback(responseContent);
            });
        };

a.js

var c = require('./b.js');
c.getCustomersDetails(function (responsecontent) {
    console.log(responsecontent);
},  '101,202,303,505,808, 100, 200, 300, 400');

当我运行a.js时,控制台没有显示任何内容,因为表中有很多记录。 任何人都可以建议我如何获得所有记录?任何帮助将不胜感激。

编辑:我在一行中有25列,所以它给我带来了前140条记录,但是当我写的时候让我在SP中排名前150或者全部在控制台中没有显示任何内容。

更新 在这种情况下,任何人都可以帮助我并建议我们如何做流式传输?

1 个答案:

答案 0 :(得分:1)

Asynchronicity又回来咬你了!

var c = require('./b.js');
// start loading the db
// it's not ready yet when you call the function!
c.getCustomersDetails(function (responsecontent) {
console.log(responsecontent);
},  '101,202,303,505,808, 100, 200, 300, 400');

您需要重写模块以使用初始化函数和回调。我会做类似的事情:

c.init(function(){
    c.getCustomersDetails(); // ...
});

var msconnection;
exports.init = function(callback){
    msconnection = new mssql.Connection(config, function (err) {
        if (err) console.log(err);
        callback();
    });
};