【问题标题】:MongoError $regex has to be a stringMongoError $regex 必须是一个字符串
【发布时间】:2017-02-10 22:17:49
【问题描述】:

问题是,我的控制台出现错误:

{ [MongoError: $regex has to be a string]
  name: 'MongoError',
  message: '$regex has to be a string',
  waitedMS: 0,
  ok: 0,
  errmsg: '$regex has to be a string',
  code: 2 }

基本上,我使用 Ajax 从我的 MongoDB 中获取数据,我正在那里搜索用户。如果没有 Ajax,我的搜索功能可以正常工作,但我想搜索用户而不需要刷新网页并填写我的 HTML。这是我所有的代码:

服务器代码:

app.post("/searchresult", function(req, res){
    var thename = req.body.thename;
    LoginUser.find({
        $or: [

            {"firstname": {$regex: thename, $options: 'i'}},
            {"lastname": {$regex: thename, $options: 'i'}}
        ]
    }, function(err, searchedUser){
        if(err){
            console.log(err);
            res.redirect("back");
        } else {
            res.render("searchprofile", {foundUser: searchedUser});
        }
    });
});

HTML 代码:

<form class="form-inline" id="searchform" action="/searchresult" method="POST">
   <input type="text" class="form-control" placeholder="Search people" name="thename" id="searchinput">
   <button type="submit" class="btn btn-default">Submit</button>
</form>

JQuery 代码:

$("#searchform").on('submit', function(e){
  e.preventDefault();

  var searchInp = $("#searchinput");

  $.ajax({
    url: '/searchresult',
    method: 'POST',
    contentType: 'application/json',
    data: JSON.stringify({ firstname: searchInp.val() }),
    success: function(response){
      console.log(response);
      searchInp.val('');
    }
  });
});

【问题讨论】:

  • console.log(thename) 显示什么?
  • 使用 ajax:名称未定义。没有 ajax:名称有值
  • undefined 不是字符串,所以这是你的问题
  • 知道为什么它返回未定义吗?我的ajax错了吗?谢谢!
  • 好吧,您在 ajax 中发布的是 firstname 而不是 thename,所以...

标签: javascript html ajax node.js mongodb


【解决方案1】:

检查您的数据可能 不是字符串。

【讨论】:

    【解决方案2】:

    // 名称 = ${thename}

    登录用户.find({ $或:[

        {"firstname": {$regex: `${thename}`, $options: 'i'}},
        {"lastname": {$regex: `${thename}`, $options: 'i'}}
    ]
    

    },

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-29
      • 2018-11-24
      • 2017-10-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多