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