通过单击按钮将参数传递给 Express 控制器

里亚诺

前言:我正在使用 Node.js、Express 和 MongoDB 编写 Web 应用程序。

单击按钮时,我试图通过 URL 将参数从 myindex.ejs传递到 Express 控制器ItemController.js,以便动态创建过滤的数据集。

按钮定义index.ejs如下:

<button type="button" class="btn btn-primary" value="/items/items" onclick="loadItems(value, 'Scripting Languages')">
      Scripting Languages
</button>

在我包含其他功能的外部 Javascripts 文件中,loadItems执行以下操作:

function loadItems(page, subcategory) {
    window.history.replaceState({}, '', "?subcat=" + subcategory); //set URL Param
    $('#mainContent').load(page); //load item listing page into grid within HTML GridLayout
}

在此之后,路由器/控制器处理数据过滤和页面渲染:

路由器 (item.js)

...
// Get all items
router.get('/items', item.items);
...

控制器 (ItemController.js)

...
  // loads item listings
  itemController.items = function(req, res) {
    Item.find({}).exec(function (err, items) {
      if (err) {
        console.log("Error:", err);
      }
      else {
        var URLSubcat = "Scripting Languages"; //this variable needs to change
        var filtered = items.filter(function(el) {
          return el.subcategory === URLSubcat;
        });
        res.render("../views/items/items", {items: filtered});
      }
    });
  };
...

我尝试使用req.query.subcat以尝试从 URL 中获取参数,但是它返回未定义。我也尝试了以下链接中的技术无济于事。我应该怎么做才能做到这一点?有没有更好的方法来解决这个问题?

以前尝试过

如何在 Node.js 上的 Express.js 中获取 GET(查询字符串)变量?

如何访问“?”后的GET参数 在快递?

昆汀
$('#mainContent').load(page);

您请求的 URL 存储在page变量中。

loadItems(page, subcategory)

... 定义为参数

onclick="loadItems(value, 'Scripting Languages')"

... 从 onclick 事件处理程序传递

value="/items/items"

...从该属性中获取值。


查询字符串未显示,因为您请求的 URL 不包含查询字符串!

您拥有的唯一查询字符串来自此处:

 window.history.replaceState({}, '', "?subcat=" + subcategory); 

... 修改浏览器地址栏中的 URL 和历史记录而不实际请求它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过单击按钮将参数传递给其他控制器

来自分类Dev

如何将参数传递给 express.js 中的嵌套控制器?

来自分类Dev

为什么我无法将应用程序传递给Express 4中的控制器?

来自分类Dev

将参数传递给控制器

来自分类Dev

尝试将Express API代码移至控制器文件

来自分类Dev

是否可以在单击提交按钮以在MVC中进行验证之前将多个参数传递给控制器?

来自分类Dev

通过事件触发器/按钮单击将参数传递给javascript函数

来自分类Dev

将对象从Node / Express路由器传递到AngularJS控制器

来自分类Dev

如何将单击的单选按钮的值传递给Spring MVC控制器?

来自分类Dev

在单击按钮时将文本框值传递给控制器?

来自分类Dev

在输入或单击按钮时将输入值传递给控制器

来自分类Dev

将单选按钮值传递给控制器

来自分类Dev

将参数传递给AngularJS控制器方法

来自分类Dev

使用Capybara将GET参数传递给控制器

来自分类Dev

Angular:将参数从$ routeProvider传递给控制器

来自分类Dev

将参数从路线传递给控制器

来自分类Dev

将参数传递给控制器中的回调

来自分类Dev

将大量参数传递给控制器?

来自分类Dev

如何使用ActionLink将参数传递给控制器

来自分类Dev

Rspec将视图参数传递给控制器规范

来自分类Dev

Ionic Popover无法将参数传递给控制器

来自分类Dev

将路径参数传递给控制器Laravel 5

来自分类Dev

如何将复杂的参数传递给控制器?

来自分类Dev

使用Capybara将GET参数传递给控制器

来自分类Dev

将多个参数传递给控制器

来自分类Dev

将参数传递给AngularJS控制器方法

来自分类Dev

将URL参数传递给AngularJS控制器?

来自分类Dev

从控制器将参数传递给Angular Factory

来自分类Dev

将GET参数传递给默认的欢迎控制器

Related 相关文章

  1. 1

    通过单击按钮将参数传递给其他控制器

  2. 2

    如何将参数传递给 express.js 中的嵌套控制器?

  3. 3

    为什么我无法将应用程序传递给Express 4中的控制器?

  4. 4

    将参数传递给控制器

  5. 5

    尝试将Express API代码移至控制器文件

  6. 6

    是否可以在单击提交按钮以在MVC中进行验证之前将多个参数传递给控制器?

  7. 7

    通过事件触发器/按钮单击将参数传递给javascript函数

  8. 8

    将对象从Node / Express路由器传递到AngularJS控制器

  9. 9

    如何将单击的单选按钮的值传递给Spring MVC控制器?

  10. 10

    在单击按钮时将文本框值传递给控制器?

  11. 11

    在输入或单击按钮时将输入值传递给控制器

  12. 12

    将单选按钮值传递给控制器

  13. 13

    将参数传递给AngularJS控制器方法

  14. 14

    使用Capybara将GET参数传递给控制器

  15. 15

    Angular:将参数从$ routeProvider传递给控制器

  16. 16

    将参数从路线传递给控制器

  17. 17

    将参数传递给控制器中的回调

  18. 18

    将大量参数传递给控制器?

  19. 19

    如何使用ActionLink将参数传递给控制器

  20. 20

    Rspec将视图参数传递给控制器规范

  21. 21

    Ionic Popover无法将参数传递给控制器

  22. 22

    将路径参数传递给控制器Laravel 5

  23. 23

    如何将复杂的参数传递给控制器?

  24. 24

    使用Capybara将GET参数传递给控制器

  25. 25

    将多个参数传递给控制器

  26. 26

    将参数传递给AngularJS控制器方法

  27. 27

    将URL参数传递给AngularJS控制器?

  28. 28

    从控制器将参数传递给Angular Factory

  29. 29

    将GET参数传递给默认的欢迎控制器

热门标签

归档