2017-02-16 34 views
1

Всякий раз, когда я пытаюсь напечатать строку, выполнение останавливается и выходит из программы. версияКод прекращает выполнение внезапно при попытке распечатать строку

var config = require('../config.json'); 
var upacConfig = config.upac; 

var endpoint = upacConfig.endpoint; 
var customer = upacConfig.customer; 
var port = upacConfig.port; 

const http = require('http'); 
const util = require('util'); 

module.exports.getAll = function getAll(cb) { 
    var url = "/" + upacConfig.methods.all + "?customer=" + customer; 
    console.log(url); 
    http.request({ 
    host: endpoint, 
    path: url, 
    port: port 
    }, function(resp) { 
    let s = ''; 
    // console.log('response'); 
    // var lines = 0; 
    resp.on('data', function(d){ 
     s += d.toString(); 
     // console.log(++lines); 
    }) 
    .on('end', function(){ 
     console.log(typeof s); 
     console.log('length:', s.length); 
     console.log(s); // <-- problem! lines below are not executed... 
     console.log('length:', s.length); 
     cb(null, s); 
    }) 
    }) 
    .on('error', e => { 
    console.log('Err:', e); 
    }) 
    .end(); 
}; 

Node: 7.1.0

Все, что код выхода является следующим:

/api/v1/all?customer=foo 
string 
length: 323416 

Edit: для MVE сделать следующее:

Вот простой сервер, который обслуживает текстовый файл с таким же количеством символов, упомянутых выше. (У меня была длинная строка JSON ...).

const http = require('http'); 
const fs = require('fs'); 
const path = require('path'); 
var file = path.join(__dirname,'json.txt') 

var app = http.createServer(function(req, res) { 
    fs.createReadStream(file).pipe(res); 
}); 

app.listen(3000); 

Тестовый клиент, который использует то, что подавляет.

const http = require('http'); 

http.request('http://localhost:3000/', r => { 
    var s = ''; 
    r.on('data', d => s+= d) 
    .on('end',() => { 
     console.log('length:', s.length); 
     console.log(s); 
    }); 
}).end(); 
+0

вы можете InstEd попробовать 'process.stdout.write (ов),' –

+0

пытался вышеупомянутый ... тот же результат :( – deostroll

+0

Try 'console.log ('Строки:', с),' –

ответ

0

Я попытался с json.txt 324418 и он работал для меня на Windows, 10. Не могли бы вы попробовать крепящий WinDbg и разделить стек вызовов?

+0

, приглашая вас в выделенную комнату, так как я не знаю, как использовать windbg. Давайте обсудим далее ...: http: // chat.stackoverflow.com/rooms/135919/deospace – deostroll