我知道這是一個范圍問題,但我不太確定我在這里遺漏了什么。
我有一個簡單的端點,如果找到用戶,我將回傳一個簡單的“未找到用戶”訊息。這是函式:
export const getOneUser = (req, res) => {
const { id } = req.params;
const foundUser = users.find((user) => user.id == id)
checkUserExists(foundUser)
res.send(foundUser)
}
我已經用輔助函式替換了我的標準守衛。所以而不是:
if(!userfound) res.send('No user was found')
具有以下功能:
const checkUserExists = (x) => {
if(!x) res.send('No user found')
}
由于我一直在使用這個守衛,我認為這可能是一個有用的撰寫函式。
問題是我收到以下錯誤,無論我做什么,如果我從 'express' 匯入 { respons } 并使用它:
ReferenceError: res 未在 checkUserExists (file:///Users/cnak/Desktop/PROJECTS/TEST3/controllers/users.js:7:12) at getOneUser (file:///Users/cnak/Desktop/PROJECTS/ TEST3/controllers/users.js:18:5) 在 Layer.handle [作為 handle_request] (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/layer.js:95:5) 在下一個(/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/route.js:137:13) 在 Route.dispatch (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/ router/route.js:112:3) 在 Layer.handle [as handle_request] (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/layer.js:95:5) 在 /Users/ cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/index.js:281:22 at param (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/index.js:360 :14) 在 param (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/express/lib/router/index.js:371:14) 在 Function.process_params (/Users/cnak/Desktop/PROJECTS/TEST3/node_modules/ express/lib/router/index.js:416:3)
如何創建一個可以實際傳遞回應的輔助函式?
我也嘗試回傳 'res.send('No user found')
謝謝
uj5u.com熱心網友回復:
因為你沒有res在你的checkUserExists函式中定義。
const checkUserExists = (x, res) => {
if(!x) res.send('No user found')
}
和
...
checkUserExists(foundUser, res);
...
uj5u.com熱心網友回復:
如果在checkUserExists方法中發送res后仍然出現錯誤。那么問題不在這里。您需要檢查您的路線,是否在此處傳遞實際的http res 實體。您能否粘貼您的 index.js 代碼和路由器檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/400888.html
標籤:javascript 节点.js 接口 表达
上一篇:物件推入For回圈/ForEach回圈中的陣列導致重復
下一篇:檢查串列中json物件中的資料
