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
中传递的输入文件中的值
我正在尝试进行范围查询并在我的 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
中传递的输入文件中的值