こういうことがしたい
ミドルウエアにトークンを渡して検証を行い、
検証して出てきたuidを次のメインの処理に渡したい ←ここでnext()にuidを渡したい
app.get('/', verifytoken, (req, res) => {
// uidをもとにdbからデータを取得する
})
function verifyToken(req, res, next){
// tokenの検証をする
// tokenをデコードしてuidを取得する
next(uid) // nextに引数を持たせて次の処理にuidを渡したい
}
どうすれば渡せるか
res.locals
に単一のリクエスト-レスポンスサイクル中だけ変数を保持することができる
他のリクエストから呼ぶことはできない
app.get('/', verifyToken, (req, res) => {
const uid = res.locals.uid // uidを渡すことができる
// uidを利用した処理...
})
function verifyToken(req, res){
// tokenの検証をする
// uidの取得をする
res.locals.uid = uid // 単一のリクエスト-レスポンスサイクルのみで保持される
}