【发布时间】:2018-03-10 14:12:26
【问题描述】:
让我们跳到一个例子。我将跳过一些部分,例如导入、导出。
我有一个名为 controllers/book.js 的控制器,它有一个路由:
router.get('/my-books', function(req, res) {
if(Auth.authenticated(req,res)) {
Book.getMyBooks(function(rows) {
response.operationSucceed(req, res, rows);
});
}
});
然后,在一个名为 models/book.js 的模型中,我拥有该功能:
function getMyBooks(successCallback) {
db.query('SELECT * FROM book b WHERE b.id_user=?', [Auth.getLoggedUID()], function(rows) {
successCallback(rows);
});
}
我的问题是关于 Auth.getLoggedUID 函数。
假设我有一个 JWT 身份验证并假设我在有效负载中有一个 UID(这甚至可以接受吗?),检索它的最佳选择是什么?除了每次将req 传递给我需要身份验证数据的每个函数之外,是否有任何其他功能?
我可能在一个函数中执行了一个函数,我是否需要将req 都通过它们来获取用户ID?像这样?:
function getBooks(req) {
getMyBooks(req);
getCriminalBooks(req);
getEvenOtherBooksByAuthor(req, authorId);
}
老实说,我不喜欢那样。 也许我的整个概念都是错误的,我应该以不同的方式做事? 有人可以在这种情况下为我指出正确的方向吗?
【问题讨论】:
标签: javascript node.js express model-view-controller jwt