2017-07-11 44 views
0

我有一个问题,我试图读取GET请求到这个Web服务器,但它没有读取它!当用户请求到达时,它应在10秒后输出。请有人帮助我吗? 程序算法是处理GET请求并在Node.JS控制台中输出它。无法读取GET请求

var express  =  require("express"); 
    var app   =  express(); 
    var bssid; 
    app.get('handle',function(request,response){ 
     bssid=request.bssid; 
     setTimeout(() => { console.log(`BSSID: ${bssid}`)}, 10000); 
    }); 



    const port = 9090 


    app.listen(port,() => { 
     console.log(`Server running at http://${port}/`); 

    }); 

回答

0

您试图读取输入时丢失的请求对象的query财产。如果要从请求URL读取GET参数(称为查询字符串),则必须使用request.query对象,例如, request.query.bssid。请参阅相关快递documentation

例子:

app.get('handle', function (request, response) { 
    bssid = request.query.bssid; 
    setTimeout(() => { console.log(`BSSID: ${bssid}`)}, 10000); 
}); 

此,当被称为localhost:3000/handle?bssid=1234,将记录1234到服务器控制台。

+0

它不会输出来控制有关BSSID的任何内容。我的代码:var express = require(“express”); var app = express(); var bssid; ((')=> {console.log('BSSID:$ {bssid}')},10000('handle',function(request,response){ set.get ); // return response.send('Done'); // return response }); const port = 3002 app.listen(port,()=> { console.log('Server running!'); }); –

+0

我在浏览器的输出中有“无法GET /处理”。也许正因为如此,它不工作? –

+0

哦,我发现如何解决它,我刚从手柄更改为/和奇怪,但它的主要作品) –

0

您需要在您的response

试试返回是这样的:

app.get('handle',function(request,response){ 
    bssid=request.bssid; 
    setTimeout(() => { 
     console.log(`BSSID: ${bssid}`); 
     return response.send('Done'); //return response 
     }, 10000); 
    });