0
我將演示這個簡單的代碼,我的問題中的POST請求:使用GET請求的回電(瓶蓋)
app.get('/test', (req, res) => {
let x = req.query.someVar;
app.post('/test', (req, res) => {
console.log(x);
});
res.send(`Hello ${req.query.someVar}`);
});
第一次運行此代碼,該POST回調函數保存到x
參考其是無論我作爲查詢參數傳遞。如果我更改查詢參數,則發送另一個GET請求,它將在服務器響應中更新,即res.send(
Hello $ {req.query.someVar} );
但POST請求仍將原始x
值記錄到控制檯。
它爲什麼這樣表現?我已經嘗試了很多東西,如傳遞對象和通過其他函數等。
我熟悉閉包的工作方式,但顯然不完全,因爲這絕對是POST回調的問題,保留了值查詢參數並且不更新它們。
謝謝。
我正在通過查詢參數獲取信息,這些查詢參數需要在發送到同一頁面的請求時查詢數據庫。因此,我需要該帖子才能訪問查詢參數 – JohnSnow
因此,爲了執行該操作,客戶端需要GET和POST到相同的URL?從來沒有聽說過任何人這樣做..如果你真的需要存儲狀態,你可以使用數據庫或類似全局變量,而不是閉包。但我想通常你只需要發送POST請求。 –
是的,我明白了,謝謝 – JohnSnow