node.js - 每次用户请求受保护的路由时都可以在数据库中搜索吗?
问题描述
我有一些受保护的路线,我想防止未付费用户获得这些路线..
每次用户请求其中一条路线时,我都会在数据库中搜索,如果他已经付款,我会呈现一个页面,如果他没有,我会将他重定向到主路线。
例如:
router.get('/videos', function(req, res) {
User.findOne({email: req.user.email}, function(err, result) {
if (err) {console.log(err);}
else if (result.isPaid) {
res.render('videos')
} else {
res.redirect('/')
}
})
})
我知道这有问题,但到目前为止它仍然有效.. 那么问题是什么?什么是替代品?
这是用户架构:
const UserSchema = new mongoose.Schema({
name: {type: String, required: true},
email: {type: String, required: true},
password: {type: String, required: true},
date: {type: Date, default: Date.now},
isPaid: {type: Boolean, default: false}
})
解决方案
推荐阅读
- javascript - 为什么我的 html 值与数组中的任何内容都不匹配?
- tomcat - Tomcat URL 重定向问题
- python - 如何为pytest中的模拟函数提供不同的返回值?
- python - 将顶点总魔术标签问题转换为 SAT
- matlab - MATLAB - 拉伸直方图算法
- android - Kotlin + Retrofit + Gson 反序列化不适用于嵌套的 json
- javascript - 如何使用 Ajax 重绘 Google Chart
- html - Firefox 和 IE 上的像素大小比 Chrome 中的大
- python - 如何将仿射变换矩阵制作成透视变换矩阵?
- xamarin - 手势识别器进入细节