Я пытаюсь сделать запрос диапазона и показать данные на мой взгляд EJsMongoDB возвращает пустой массив
EJS View «historicos.ejs»
<h1>historicos</h1>
<form action="/historicos/buscar">
<input type="text" name='inicio' id='inicio'></li>
<input type="text" name='final' id='final'></li>
<br>
<button type="submit">Buscar</button>
</form>
<% if(typeof his !== 'undefined'){
his.forEach(function(dati){%>
<%= dati.temp %>
<%= dati.hum %>
<%= dati.date %>
<br/>
<%});
}; %>
Я использую контроллер с 2-мя методами , 1 для отображения страницы и для управления запросом.
Контроллер "grafi.js"
var Si = require('../models/sis');
exports.getPagehis = function(req, res) {
if (req.user) return res.redirect('/');
res.render('historicos');
};
exports.getHis= function(req, res, next) {
ini = req.body.inicio;
fin = req.body.final;
console.log(ini)
console.log(fin)
Si.find({"date": {"$gte":ini, "$lt":fin}},function(err, his) {
console.log(his);
if(err) return next(err);
res.render('historicos', {
his:his
});
});
};
и это мой маршрутизатор файл
router.get('/historicos', hiController.getPagehis);
router.get('/historicos/buscar', hiController.getHis);
, если я пишу вручную ини и плавник, чтобы сделать запрос (используя этот формат YYYY-MM-DDThh : mm), я имею в виду без req.body.inicial и req.body.final, он работает хорошо, но когда я запрашиваю информацию из представления, я получил эти поля без изменений.
что я могу сделать, чтобы решить эту проблему?
Вы подтвердили на сервере, что 'req.body.inicio' и' req.body.final' находятся в том же формате, что и 'YYYY-MM-DDThh: mm', а не закодированы или экранированы? –
Да, как я сказал, если я напишу строку в этом формате, она хорошо работает –
Это подтверждает, что строка в этом формате работает, но не то, что значения параметра имеют эту форму. Вы либо отлаживали, либо console.log переданные значения? –