Expressjs 路由与用户名
Expressjs routes with username
我试图在expressjs中使用用户名作为路由,以查看他们的个人资料。
app.get('/:username', function (req, res, next) {
users.get_user(req.params.username, function (err, results) {
if(results[0]) {
res.render('/profile', {
title: 'Profile',
userinfo: results[0]
});
} else {
next();
}
});
});
users.get_user
是一个从数据库中获取用户的函数。如果找不到用户,则继续执行下一个路由。我还有很多其他页面,如/start
、/forum
等。这是否是一种不适当的方法,因为每次通过 /:username
路由时都会调用 db。我的问题是,有没有更好更充分的方法?
尝试定义更具体的路由(例如 /start
、 /forum
) 在应用程序中的/:username
路由之前。 "快速"按照您定义的顺序匹配路由。
例如,这样做:
app.get('/start', function(req, res, next) {...});
app.get('/forum', function(req, res, next) {...});
app.get('/:username', function(req, res, next) {...});
不
app.get('/:username', function(req, res, next) {...});
app.get('/start', function(req, res, next) {...});
app.get('/forum', function(req, res, next) {...});
这样,如果用户转到 /start
,它就不会命中/:username
路由并导致数据库命中。
相关文章:
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- 流星 - 添加带有熨斗的路由后无法提交用户.路由器到登录和注册表单
- 使用Passport.js获取路由之外的当前用户
- 如何调用索引/索引路由'用户后的s模型挂钩's的授权
- 无法获取用户 ID 路由参数以在反应路由器中继上工作
- 如何将用户路由到带有angularjs和Firebase的新页面
- Ionic (AngularJS) - 重定向用户和路由
- Meteor:用于配置特定于用户类型的路由的约定
- Parse JS SDK登录不使用AngularJs ui路由保持当前用户信息
- 使用Flow Router检查每个路由中是否存在用户
- Expressjs将用户重定向到错误的路由
- 护照JWT要求.在我的一条路由中没有定义用户
- Javascript在php项目中不起作用,用户仍然被路由到php页面,而不是停留在当前页面
- 当使用异步认证路由和passport.js时,用户没有被序列化
- 为什么Jade认为来自我数组的链接应该将用户路由到/admin/thisurl而不是实际链接
- 我需要路由数据在客户端之间的节点客户端正确连接的用户
- 干净的方式来重新路由那些没有登录React的用户
- 如何防止在用户更改路由后,在一条路由中发起的缓慢的$http可能被解析
- 使用hashbang防止用户在单页应用中离开路由
- 铁路由器的基路由和用户路由