我正在尝试进行范围查询并在我的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个方法,1个用于渲染页面,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);
如果我手动编写ini和fin来进行查询(使用这种格式YYYY-MM-DDThh:mm),我的意思是没有req.body.inicial和req.body.final,它运行良好但是当我请求时来自视图的信息我得到了这个领域的解决方案。
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
问题是形式和请求一般添加方法=&#34; get&#34;在表单中,用以下内容更新控制器:
var Url = require('url');
...
queryparams = Url.parse(req.url,true).query;
ini = queryparams.ini;
fi = queryparams.fi;
... make the query to mongo db
使用此代码可以获取在url
中传递的输入文件中的值