node.js - Express js URL 清理

标签 node.js mongodb

我创建了一个路由,从数据库(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 

有没有办法隐藏 URL 中的用户 ID

最佳答案

只需从您的 route 删除 :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('........');
 });
});

关于node.js - Express js URL 清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47728939/

相关文章:

node.js - 在 typescript 中使用 mysql 类型

java - mongodb 查找并返回 id 作为字符串 - java

python - 如何使用项目列表查询 mongodb

node.js - 如何从 Mongoose 的 DeleteMany 中间件中获取已删除的文档?

javascript - 如何在部署expressjs应用程序时修复heroku错误?

node.js - 使用 sequelize js 限制 x 和 y

node.js - 将 gsap Node 模块与 Meteor 一起使用

javascript - 尝试请求浏览器版本的 NeDB 时出错

javascript - 在 Node.js/Javascript 中,如何检查多维数组中是否存在值?

python - 将 SQL 查询转换为 mongo 查询