為什麼Postman中使用正確的URL的第二個GET請求總是執行第一個請求並傳回其錯誤訊息的回應?
P粉311617763
P粉311617763 2023-08-17 11:53:17
0
1
402
<p>我有兩個GET請求,但是在Postman中,如果我用正確的URL點擊第二個GET請求,那麼總是會運行第一個請求,並給出第一個請求的回應。優化問題</p> <pre class="brush:php;toolbar:false;">router.get( "/:id", [auth], usersController.getUser ); router.get( "/allUser", [auth], usersController.getAllUser );</pre> <p>使用者控制器檔案與相關方法</p> <pre class="brush:php;toolbar:false;">exports.getUser = async (req, res) => { const id = req.params.id; try { let result = await userService.getUserAccount(id); if (result) { const resultWithoutPassword = {...result}; delete resultWithoutPassword.password; return res.status(HttpCodes.OK).send(resultWithoutPassword); } //console.error("error: Not Found."); return res.status(HttpCodes.NOT_FOUND).send(AppMessages.USER_NOT_FOUND); } catch (error) { return res.status(HttpCodes.INTERNAL_SERVER_ERROR).json( { Error: AppMessages.INTERNAL_SERVER_ERROR, Message: "Id Should be an Integer." }); } } try{ let result = await userService.getAllUserAccounts(); return res.status(httpCodes.OK).json(result); } catch(err){ return res.status(httpCodes.INTERNAL_SERVER_ERROR).json({ERROR: AppMessages.INTERNAL_SERVER_ERROR}); } }</pre> <p><br /></p>
P粉311617763
P粉311617763

全部回覆(1)
P粉208469050

聽起來你在使用Express.js路由時,在Postman中進行兩個不同的GET請求時遇到了意外行為。具體來說,當你發送一個請求到第二個路由(/allUser)時,你收到的是第一個路由(/:id)的回應。這種行為與你的期望不符。

以下是一些你可以檢查來解決問題的方法:

路由順序:確保Express路由器中的路由順序是正確的。路由按照它們定義的順序進行匹配。如果/:id路由在/allUser路由之前定義,它可能會捕捉到本應該發送到/allUser路由的請求。如果需要,可以交換路由的順序。

路由參數衝突:確保在/:id路由中定義的參數與/allUser路由的任何可能值不衝突。例如,如果你使用了通配符參數,例如/:id,它可能會意外地匹配到字串"allUser"並觸發錯誤的路由。如果需要,可以修改路由參數使其更具體。

路由中間件:檢查是否有應用到路由上的中間件可能會導致意外行為。在這種情況下,[auth]中介軟體可能會影響路由的處理方式。請檢查中間件,確保它不會幹擾路由的正常行為。

路由路徑重疊:仔細檢查路由路徑是否是不同且不重疊的。例如,如果路由路徑是/allUser和/:id,Express在匹配傳入請求到這些路由時不應該有任何歧義。

以下是你可以調整路由定義以提高清晰度的方法:

// 在正确的顺序中定义路由
router.get(
    "/allUser",
    usersController.getAllUser
);

router.get(
    "/:id",
    [auth],
    usersController.getUser
);

請記住,如果沒有看到完整的程式碼和上下文,很難準確定位問題。然而,這些一般的故障排除步驟應該可以幫助你辨識和解決問題。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!