【问题标题】:Set parameter for URL in html and use parameter in Node.js Express for routing在 html 中为 URL 设置参数并在 Node.js Express 中使用参数进行路由
【发布时间】:2017-08-02 10:45:37
【问题描述】:

我对 Node JS 和 Express Framework 和 mongodb 非常陌生。我在一个有多个类别的网站上工作,当我们点击类别时,它会进入一个视图,根据点击的类别,数据会加载到视图中。

请查看here 网站的链接。

我正在寻找导航栏链接的帮助,例如。 Montessori Premium->幼儿教材

由于这些是静态链接,我不知道如何为此传递任何参数或 url 格式。

我已经完成了单个产品的路由,因为它们的 id 来自数据库,所以我在 url 中使用该 id。

提前致谢。

【问题讨论】:

标签: node.js mongodb express


【解决方案1】:

感谢@Elliot 抽出时间回答这个问题。是的,我正在使用车把进行模板制作。我找到的解决方案是,因为我使用的是静态链接,所以我在锚标记链接中传递查询字符串。 例如。 http://localhost:8000/product?category=Toddler_Material 然后使用req.query 捕获路由器中的值(Toddler_Material)

var category = req.query.category;

【讨论】:

  • 如果我的答案是正确的,您介意将其标记为正确吗?
【解决方案2】:

在我看来,您只是在前端和后端数据库调用之间缺少了一点粘合剂。以下是您可能会遵循的顺序的粗略概念,以及我认为您缺少的内容的解释。

如果我错了,请添加评论并更新您的问题以包含新的详细信息,我会看到如何编辑我的答案。

在此示例中,我正在创建一个网站,其中包含商店中的“商品”列表,我们希望将它们全部显示在一个页面上。然后,每个项目都应该有一个指向该特定项目的href,其中可能有更多细节,例如项目的“完整描述”,可能还有一些图像或其他东西。我们将查看使用项目列表构建第一页的流程。

  1. 用户对您网站的根目录进行 HTTP GET 调用,例如“http://www.mystore.com/”。
  2. 此请求通过 Express 传递到您的控制器,该控制器采用 req, res, next 参数。
  3. 您的控制器调用数据库以获取所有项目的列表,包括它们的名称和 ID。
  4. 然后您使用称为模板的东西注入项目列表。
  5. 在此模板中,您可以像这样遍历列表。

.

<ul>
    {{#each items}}
        <li><a href="/items/{{id}}>{{name}}</a></li>
    {{/each}}
</ul>

在这个模板(恰好是 Handlebars)中,我们将遍历项目列表,并使用每个项目的 id 和名称将它们注入 HTML 以得到类似这样的东西。

<ul>
    <li><a href="/items/1>Shoes</a></li>
    <li><a href="/items/2>Red spotted dress</a></li>
    <li><a href="/items/3>Jeans</a></li>
</ul>
  1. 模板处理完毕后,该模板将提供给用户。

本质上,我认为您正在使用某种模板引擎,我强烈建议您使用 express-hbs 之类的东西查看 Handlebars。

【讨论】:

    猜你喜欢
    • 2020-06-16
    • 2020-04-09
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多