Всякий раз, когда я пытаюсь напечатать строку, выполнение останавливается и выходит из программы. версияКод прекращает выполнение внезапно при попытке распечатать строку
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();
вы можете InstEd попробовать 'process.stdout.write (ов),' –
пытался вышеупомянутый ... тот же результат :( – deostroll
Try 'console.log ('Строки:', с),' –