【发布时间】: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