Mongodb return 一个空数组

Mongodb return an Empty array

我正在尝试进行范围查询并在我的 ejs 视图中显示数据

EJS 视图 "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 种方法的控制器,一种用于呈现页面,一种用于管理查询。

控制器"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);

如果我手动编写 ini 和 fin 来进行查询(使用这种格式 YYYY-MM-DDThh:mm),我的意思是没有 req.body.inicial 和 req.body.final,它工作正常但是当我从视图中请求信息,我得到了未定义的字段。

我该怎么做才能解决这个问题?

问题出在表单和请求中,一般在表单中添加 method="get" 并更新控制器:

var Url = require('url');

...

queryparams = Url.parse(req.url,true).query;
    ini = queryparams.ini;
    fi = queryparams.fi;
... make the query to mongo db

使用此代码可以获得 url

中传递的输入文件中的值