【问题标题】:Sending a string using ajax and express.js to the server and mongoDB使用 ajax 和 express.js 将字符串发送到服务器和 mongoDB
【发布时间】:2018-04-05 11:25:48
【问题描述】:

我需要从客户端向服务器发送一个字符串“resultString”,以便它发送到 MongoDB 并返回结果。 这个 js 文件从复选框中获取值并创建结果字符串

客户

$(document).ready(function() {
  $("#test").click(function() {
    var result = $('input[type="checkbox"]:checked');
    if (result.length > 0) {
      var resultString = "";
      result.each(function() {
        resultString += $(this).val() + " ";
      });
      $.ajax({
        url: '/recipe',
        data: resultString,
        success: function(data) {
          //DONT KNOW WHAT TO PUT HERE
        }
      });
    } else {
      alert("No checkbox checked");
    }
  });
});

服务器

router.get('/recipe', function(req, res, next) {
  Recipe.find({
    $text: {
      $search: req.resultString
    }
  }, {
    score: {
      $meta: "textScore"
    }
  }, function(err, recipe) {

    res.json(recipe);

  }).sort({
    score: {
      $meta: "textScore"
    }
  });
});

我尝试通过输入 req.resultString 来接收,但这不起作用。这种搜索方法的工作原理就像我要放置一个搜索词而不是 req.resultString 它会将数据库结果返回到 /recipe 页面,但我希望“resultString”在这里。谢谢

【问题讨论】:

  • req.resultstring veya req.body.resultstring 还有很多错误。
  • 例如排序后可以得到菜谱:)
  • @ŞükranEken 抱歉,第二条评论是什么意思?
  • 尝试使用body parser
  • 首先使用body parser。像这样req.body.resultstring并在function(err,recipe)之前使用sort方法

标签: javascript node.js ajax mongodb express


【解决方案1】:

首先你需要body-parser:

var bodyParser = require('body-parser');
var app = express();

app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());

然后像这样使用搜索变量:

router.get('/recipe', function(req, res) {
     var qs = {};
     qs.searchCriteria= req.body.resultString;
     Recipe.find(qs, function(err, data){
        //data should be the search result
        console.log(data);
  })
})

searchCriteria 应该是您在 DB 中的搜索属性,例如名称、id 或您搜索的列,类似于:SELECT * FROM wallpapers WHERE searchCriteria IS yourSearchString

【讨论】:

  • 添加文本搜索:)
猜你喜欢
  • 2023-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-19
  • 2015-10-20
  • 1970-01-01
  • 2015-06-11
相关资源
最近更新 更多