表达js URL清理

时间:2017-12-09 13:13:34

标签: node.js mongodb

我创建了一个从DATABASE(mongoDB)获取用户完整详细信息的路径。

路由器

router.get('/user/:userid/:name', getUrl, function(req, res, next) {
  User.findOne({_id: req.params.userid})
  .exec(function(err, user) {
     if (err) { return next(err); }
     if (!user) { return next(404); }
     res.render('........');
 });
});
例如,我可以使用以下URL访问此路由器:

http://127.0.0.1/user/6465667/username 

但我真正想要的是这个

http://127.0.0.1/user/username 

是否有办法在网址中隐藏用户ID

1 个答案:

答案 0 :(得分:3)

只需从您的路线中删除:userid,然后使用该名称查找您的数据库。确保您的用户名是唯一的,否则您可能会收到错误的用户详细信息。

router.get('/user/:name', getUrl, function(req, res, next) {
  User.findOne({name: req.params.name})
  .exec(function(err, user) {
     if (err) { return next(err); }
     if (!user) { return next(404); }
     res.render('........');
 });
});