TIL 20.12.22


12/22 TIL


MongoDBb __v field


MongooseをMongoDBのORM(正確にはODM)として使用すると、__vという不審なフィールドが表示されます.

Mongooseの公式ドキュメントはversionKeyと呼ばれています.このキー値には、ドキュメントの内部変更に関する情報が含まれます.これはDocumentバージョンを管理するためのフィールドです.バージョンキーは、.save()を使用してドキュメントを更新する場合にのみ更新されます.(update()findOneAndUpdate()では更新されません.設定があまりにも異なる場合を除き、デフォルト値は0です.)__vフィールドを別の用途として使用するには、mongoseが{versionKey:false}フィールドを自動的に作成しないように、mongoseに__vオプションを提供する必要があります.

Passport Strategy


別名を使用すると、異なるpassportポリシーを使用できます.
app.use('jwt', JwtStrategy);
app.use('adminJwt', AdminJwtStrategy)
これにより、jwtauthenticateは管理者の認証を必要とする論理には、次のものが含まれます.
router.get('/', authenticate('adminJwt'))
一般ユーザー認証には、次のものが含まれます.
router.get('/', authenticate('jwt'))
このように分岐することができます.