我有這個函式,我將一些引數傳遞給我的服務器:
async function createOrderItemForCardInList(cardID, value, listID) {
const token = await getToken();
const response = await fetch(`${basePath}/order/list/${listID}`, {
method: 'POST',
body: JSON.stringify({
cardID,
value
}),
headers: getTokenAuthHeaders(token)
});
return response.json();
}
在我的服務器上,我定義了呼叫傳遞時的路由:
router.post('/list/:id', TokenController.isAValidToken, async (req, res) => {
const { cardID, value } = req.query;
console.log(value, cardID); // <- This prints 'undefined'
try {
const orderItem = await OrderItemController.createOrderItem(value, req.params.id, cardID);
res.json(orderItem);
} catch (error) {
ErrorController.errorCallback(error, res);
}
});
從我的路由器上的注釋可以看出,que請求的引數沒有被傳遞,我該如何解決這個問題?
console.log(cardID, value, listID)我知道當我在函式上放置 a 時,引數會列印它們對應的值createOrderItemForCardInList。
uj5u.com熱心網友回復:
您正在破壞在 ? 之后添加的查詢 在一個請求中。IE .com?cardID=777&value=10000
但是,在您的原始代碼中,您通過 POST 正文發送它。將 req.query 更改為 req.body 以達到預期的結果。
router.post('/list/:id', TokenController.isAValidToken, async (req, res) => {
const { cardID, value } = req.body;
console.log(value, cardID); // <- This prints 'undefined'
try {
const orderItem = await OrderItemController.createOrderItem(value, req.params.id, cardID);
res.json(orderItem);
} catch (error) {
ErrorController.errorCallback(error, res);
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/447597.html
標籤:javascript 反应 表示 快速路由器
