http.createServer内のhttp.get()
関数が応答しません。Node.js Http.get()関数が応答しません。
ユーザーがサーバーにリクエストを送信したときにJSONデータを取得するための小さなスニペットを書きました。ここに私のコードです。
var http = require('http');
var x = '';
http.createServer(function (request,response) {
http.get({
host:'query.yahooapis.com',
path:'/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)&format=json&env=store%3A%2F%2Fdata tables.org%2Falltableswithkeys&callback=cbfunc'
}, function(res){
res.on('data',function(d){
x+=d.toString();
console.log(d.toString());
})
});
response.writeHead(200, {'Content-Type':'text/plain'})
var l = JSON.parse(x.substring(7,x.length-2));
response.end(l.query.results.quote[0].symbol + '');
}).listen(8080);
私はエラーを取得しています:
undefined:0
SyntaxError: Unexpected end of input
at Object.parse (native)
at Server.<anonymous> (C:\Users\Lenovo\Documents\fetch.js:18:12)
at Server.emit (events.js:70:17)
at HTTPParser.onIncoming (http.js:1491:12)
at HTTPParser.onHeadersComplete (http.js:102:31)
at Socket.ondata (http.js:1387:22)
at TCP.onread (net.js:354:27)
は限り私が考えるほど。エラーはx = ''が原因でjsonではなくエラーが発生するためです。しかし、localhost:8080を呼び出してリクエストを送信すると、エラーではなくコンソールにjsonのテキストが表示されます。私の目的は、株式相場をリアルタイムで解析することで、リクエストが来たときにリクエストを出し、その結果をレスポンスに設定することです。
私はそれがコンソール上に細かい上映JSONテキストを働いていますが、ユーザが要求しているとき、私は、サーバー上に展開したとき、私は一度のデータを取得するとは思わないデータに
var http = require('http');
var x = '/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22%2C%22AAPL%22%2C%22GOOG%22%2C%22MSFT%22)&format=json&env=store%3A%2F%2Fdata tables.org%2Falltableswithkeys&callback=cbfunc';
http.get({
host: 'query.yahooapis.com',
path: ''
},function(res){
res.on('data',function(d){
x+=d.toString();
console.log(d.toString());
})
});
http.createServer(function(request,response){
response.writeHead(200,{'Content-Type':'text/plain'})
var l=JSON.parse(x.substring(7,x.length-2));
response.end(l.query.results.quote[0].symbol+'');
}).listen(8080);
を取得するために1つのより多くのスニペットを試してみましたデータ。エラーを解決するにはどうすればよいですか?
最初の例では最後の行は存在しないはずです。 –