【问题标题】:Express.js adding a query parameterExpress.js 添加查询参数
【发布时间】:2022-01-25 19:06:10
【问题描述】:

我正在尝试在 Express 中添加查询参数。这将是一个可选参数。我想添加一个数量限制,以限制返回的响应数量。

所以我尝试了这个网址:

http://localhost:3000/restaurants/mowgli?limitQuery=4

使用此代码:

app.route("/restaurants/:restaurantName")

  .get(function(req, res) {
    let partialToMatch = new RegExp(req.params.restaurantName, 'i');
    
    let limitQuery = req.query.limitQuery
    console.log(limitQuery);
    

    Restaurant.find({
      BusinessName: partialToMatch
    }, null, {
      limit: limitQuery
    }, function(err, foundRestaurant) {
      if (foundRestaurant) {
        res.send(foundRestaurant)
      } else {
        res.send("No restaurants matching that title was found.");
      }
    });
  });

但它会引发错误“未找到与该标题匹配的餐厅。”。控制台成功记录limitQuery参数,但是传到limit字段好像出错了。

注意:如果我不使用可选的查询参数,通过删除 limitQuery 变量并恢复到我的旧代码(并在限制字段中硬编码一个数字,例如limit: 25),一切正常。

【问题讨论】:

    标签: api express optional-parameters xregexp


    【解决方案1】:

    已解决 - 变量 limitQuery 以字符串而不是整数的形式返回。所以我用 parseInt 进行了更改,现在它将一个数字传递给限制字段并且可以工作。 这是我用来解决问题的额外代码:

    var limmy = parseInt(limitQuery, 10);
    

    然后在 Restaruant.find 查询中,限制字段如下所示:

    limit: limmy
    

    【讨论】:

      猜你喜欢
      • 2018-07-29
      • 1970-01-01
      • 2016-05-15
      • 1970-01-01
      • 2019-05-30
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多