【问题标题】:How can I have a dynamic link that takes me to an info page for the specific link selected?我怎样才能拥有一个动态链接,将我带到所选特定链接的信息页面?
【发布时间】:2021-05-13 17:49:21
【问题描述】:

所以,我有一个显示用户列表的页面,我想让每个用户链接到一个仅显示该特定用户详细信息的页面。我对这一切都很陌生,所以我不确定从哪里开始,但我想我想要的是链接更改以包含与用户关联的特定用户 ID,然后我可以在后端解析该 url并仅向用户详细信息页面发送所需的信息。我在一个名为 usercollection btw 的 mongodb 集合中获得了所有用户信息。这是显示用户列表的 html:

<h1>User List</h1>
    <ul>
      <%
        var list = '';
        for (i = 0; i < userlist.length; i++) {
          if (userlist[i].deleted==false) {
            list += `<li><a href="userdetail/?uid="+${userlist[i].uid}" id="${i}"> ${userlist[i].username} </a></li>`;
          }
        }
      %>
      <%- list %>
    </ul>

然后我在 .js 文件中有这个位,给定 uid 将返回具有正确用户信息的文档

/*GET UserDetails page.*/ 
router.get('/userdetails', function(req, res) {
  var queryID = req.uid
  var db = req.db;
  var collection = db.get('usercollection');
  collection.find({"uid" : queryID},{},function(e,docs){
      res.render('userdetail', {
          "userinfo" : docs
      });
  });
});

正如我的用户名所说,我现在已经超出了我的能力范围,如果有任何指导甚至是阅读材料可以提供帮助,我将不胜感激。谢谢!

【问题讨论】:

  • 看起来只是想使用req.query.uid,因为req.query对象自动包含Express中解析的查询字符串。您需要使您的 URL 与您的路由定义相匹配,因为一个当前使用 /userdetail,另一个使用 /userdetails。此外,在您生成的链接前面放置一个/,这样它就不是页面相关的。

标签: javascript html node.js mongodb express


【解决方案1】:

a 标签的href 属性错误。试试这个。

list += `&lt;li&gt;&lt;a href="userdetail/?uid=${userlist[i].uid}" id="${i}"&gt; ${userlist[i].username} &lt;/a&gt;&lt;/li&gt;`;

希望这对你有用。

【讨论】:

  • 感谢@Sophie 的建议!那确实解决了我的动态网址问题
【解决方案2】:

在您的 href 中,您没有正确使用模板字符串。

改变这个:

`<li><a href="userdetail/?uid="+${userlist[i].uid}" id="${i}"> ${userlist[i].username} </a></li>`;

到这里:

`<li><a href="/userdetail?uid=${userlist[i].uid}" id="${i}"> ${userlist[i].username} </a></li>`;

您不想尝试在模板字符串中间进行字符串匹配,而您的引用也搞砸了。


然后,在您的服务器上,您可以更改:

var queryID = req.uid

到这里:

const queryID = req.query.uid

在 Express 中,req.query 对象是查询字符串的解析版本,因此 URL 中存在的任何查询字符串参数都将是 req.query 对象的属性。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多