2015-12-27 2 views
0

Это мое простое серверное приложение в nodejs. У меня проблема с сообщениями с моего сайта.Неверные данные из запроса POST в NodeJS

1 пост = приложение возврата ничего возврата
2 пост = приложение данные из предыдущего поста

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

var tenitem = []; 
var dataa; 

http.createServer(function (req, res) { 
    if (req.method === 'GET') { 
     res.writeHead(200, { 'Content-Type': 'text/plain', 'Access-Control-Allow-Origin': '*' }); 
     res.end('Hello World\n'); 
    } 

    if (req.method === 'POST') { 
     var body = '' 
     console.log("POST"); 
     req.on('data', function (data) { 
      body += data; 
     }); 
     req.on('end', function() { 
      console.log(body) 
      dataa = body; 
      http.get('http://steamcommunity.com/market/priceoverview/?currency=1&appid=730&market_hash_name=' + dataa, function (api) { 
       var bod = ''; 

       api.on('data', function (chunk) { 
        bod += chunk; 
       }); 

       api.on('end', function() { 
        console.log(bod) 
        tenitem = JSON.parse(bod); 
       }) 
      }) 
     }); 

     res.writeHead(200, { 'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*' }); 
     res.end(tenitem.lowest_price) 
    } 
}).listen(port, hostname, function() { 
    console.log('Server running'); 
}); 

ответ

0

tenitem инициализируется внутри внутренней функции, и вы пытаетесь отправить его обратно. Просто переместите res.end() в эту функцию:

api.on('end', function() { 
    console.log(bod) 
    tenitem = JSON.parse(bod); 
    res.writeHead(200, { 'Content-Type': 'text/html', 'Access-Control-Allow-Origin': '*' }); 
    res.end(tenitem.lowest_price) 
}) 
+0

Благодарим за помощь. Теперь это работает :) – Krzysiek014

Смежные вопросы