Сценарий : При вызове API из Angular7 я звоню Node (через экспресс) и возвращаю фрагментированные данные типа string - я хочу захватить эти строковые данные и отобразить их в виде строки
На стороне сервера: Из серверной части Node отправляются данные в виде 'text', а не в формате json ... данные отправляются через несколько операторов res.write ('some strings')
на стороне клиента в Angular: Я хочу, чтобы наблюдаемые обрабатывали эти данные ...
- , когда я не упоминаю responseType [return this.http.get(this.streamURL);] ... я получаю ошибку:
SyntaxError: Неожиданный токен {в JSON в позиции 12 в JSON.parse ()
когда я не упоминаю responseType как 'text [return this.http.get (this.streamURL, {responseType:' text '});] ... я получаю ошибку во время компиляции:
ОШИБКА в src / app / myS.service.ts (24,54): ошибка TS2322: тип "text" не может быть присвоен типу "json" *
как мне получить «текстовые» данные из моего бэкэнда JS Node ... я использую nors cors в своем ноде, поэтому здесь нет ошибок CORS
Демонстрационный код доступен здесь: https://stackblitz.com/edit/angular-44sess
My Back-end находится во фрагменте ниже:
app.get('/obs/responseWrite', cors(), function(req, res){
var j=0;
const headers = {
'Content-Type': 'text',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'OPTIONS, POST, GET',
'Access-Control-Max-Age': 2592000, // 30 days
};
res.writeHead(200,headers);
for(var i=0; i<50000; i++){
/* setInterval(function() { res.write("returning j:["+ j + "]. "); j=j+1; if(j>=100){res.end();} }, 1000); */
var myObj = { return : i };
var myStr= JSON.stringify(myObj);
console.log(myStr);
res.write(myStr);
}
setInterval(function() { res.end(); }, 15000);
});