Я пытаюсь выполнить поиск в базе данных MongoDB по вызову AJAX.
Данные - это события с начальным и конечным датами TimeTime и описанием String.
Проблема Iесть то, что маршрутизатор nodejs, кажется, не получает критерии, отправленные в вызове ajax.
Вот код:
Модель Mongoose
const eventSchema = new mongoose.Schema({
description: {
type: String,
require: true,
default: ""
},
beginDate: {
type: Date,
required: true,
default: Date.now
},
endDate: {
type: Date,
required: true,
default: Date.now
}
})
Вызов Ajax
function showEvent(dateValue) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var valResponse = JSON.parse(this.responseText)
var eventStart = new Date(valResponse.beginDate)
var eventEnd = new Date(valResponse.endDate)
document.getElementById("eventFrom").innerHTML = datetimeToText(eventStart)
document.getElementById("eventTo").innerHTML = datetimeToText(eventEnd)
document.getElementById("eventDesc").innerHTML = valResponse.description
}
};
xhttp.open("POST", "/getevent", true);
xhttp.setRequestHeader("Content-Type", "application/json;");
xhttp.send(JSON.stringify({ 'beginDate': { '$gte': '2019-05-23T00:00:00.000Z' }, 'endDate': { '$lte': '2019-05-23T23:59:59.000Z' } }))
}
NodeJS router
const express = require("express")
const router = new express.Router()
const Event = require("../models/eventsModel")
router.post("/getevent", async (req, res) => {
try {
Event.find(req.body).exec((err, result) => {
res.status(200).send(result)
})
} catch (e) {
console.log(e)
res.status(400).send(e)
}
})
module.exports = router
Теперь, если я добавляю console.log (req.body) в маршрутизатор, он возвращает только пустой JSON ({}).
Любая помощь приветствуется!