2017-06-03 25 views
1
var payload = { 
    type: 'PAYLOAD' 
    }; 
app.get('/location', function(req, res) { 
    res.sendFile(__dirname + '/public/pages/locations.html',payload); 
}); 

您好,我是expressjs,javascript和node新手,我無法設法通過app.get傳遞數據,我希望能夠做的就是讓有效載荷的類型作爲GET參數(所以要看/ locations?type = type_of_location),或者至少要能夠從頁面locations.html的javascript訪問它。傳遞參數in expressjs

在此先感謝您的幫助

回答

0

如果您請求/locations?type=type_of_location那麼你就可以訪問該type數據與req.query.type因爲req.query對象有你需要的數據。

UPDATE:

先做這個服務器上:順便說一句送/locations?type=type_of_location到客戶端的唯一方法是重定向他,然後發送文件。

app.get('/location', function(req, res) { 
    if(!req.query.type) 
     res.redirect('/location?type=' + payload); 
    else 
     res.sendFile(__dirname + '/public/pages/locations.html',payload); 
}); 

如果你想反其道而行之,發送/locations?type=type_of_location到客戶端和提取type=type_of_location值,那麼你可以做到這一點與JavaScript的使用window.location.search返回?type=type_of_location

然後做這個客戶端上的javascript:接下來還要與一個正則表達式類似結果處理:

let query = window.location.search; 
let typeValue = /type=(.*)/.exec(query)[1]; // Extract the value 
+0

其實我想什麼有是相反的,因此,要發送/位置類型? = type_of_location作爲迴應 – Staticshot

+0

對不起,我一定是以錯誤的方式解釋了自己。 當app.get被調用時,我想知道如何發送回客戶端:/ locations?type = type_of_location,並知道如何從客戶端javascript訪問type參數 – Staticshot

+0

是的,我更新了代碼與expressjs部分。它會將用戶重定向到相同的請求,但會添加這些參數。檢查我更新的答案。然後,使用javascript客戶端的代碼以正則表達式提取'type'的內容。 –