0

如果我使用 RegExp,那么我的搜索小部件页面总是会得到:/(?:)/i

因此总是加载结果列表。我不希望这种情况发生。我只想加载我的页面,然后用户填写搜索框,然后执行 GET 请求。

app.get("/la_widget", function(req, res) {

  var test = new RegExp(req.query.search, 'i');
  console.log(test);

  Restaurant.find({
      LocalAuthorityName: test
    },
    null,
    {
      limit: 50
    },
    function(err, foundAuthority) {
      if (foundAuthority) {
        res.render("la_widget", {foundAuthority})
    } else {
      res.render("la_widget", "No local authority matching that input was found.");
    }
  });
});
4

1 回答 1

1

在设置搜索查询之前测试是否req.query.search定义了字符串(他们)。

const test = (req.query.search) 
  ? new RegExp(req.query.search, 'i')
  : undefined

这使用了一个三元运算符,它等同于:

let test
if (req.query.search) {
   test = new RegExp(req.query.search, 'i')
}
else {
   test = undefined
}
于 2020-09-01T23:13:00.810 回答