Nodejs同sequelize使用,查找数据返回情况有误。
1.写一个机票预订系统,根据leave_city,arrive_city,leave_date向数据库中查找数据,封装了一个findFlights(leave_city,arrive_city,leave_date),点击提交后,跳转到结果页面,在结果页面中还有一个查询框,因为我不想页面再闪一下,所以使用XHR查询,同上面调用一样的方法,使用一样的条件,没有返回值,直接在请求中给findFlights("xx","xx","xx")赋确定的值,是有结果返回的,可是参数给的也没错啊....真的不知道为啥,一样的函数调用,一个有返回一个没返回
2.
//查询航班
router.post("/result",function(req,res,next) {
var leave_city = req.body.leave_city;//出发城市
var arrive_city = req.body.arrive_city;//到达城市
var leave_date = req.body.leave_date;//出发时间
//查询航班处理函数
Flight.findFlights(leave_city,arrive_city,leave_date).then(flights => {
var result = JSON.stringify(flights);//amazing....
res.render("index",{
result: JSON.parse(result),
search: {
leave_city: leave_city,
arrive_city: arrive_city,
leave_date: leave_date
}
});
});
});
//再查询接口
router.post("/show_result",function(req,res,next) {
var leave_city = req.body.leave_city;//出发城市
var arrive_city = req.body.arrive_city;//到达城市
var leave_date = req.body.leave_date;//出发时间
console.log("req.body research: ",req.body);
//查询航班处理函数
console.log("leave_city: ",leave_city);
console.log("arrive_city: ",arrive_city);
console.log("leave_date: ",leave_date);
Flight.findFlights(leave_city,arrive_city,leave_date).then(flights => {
res.send(flights);
});
// Flight.findFlights("武汉","上海","2017-12-07").then(flights=>{//amazing
// console.log("flights: ",flights);
// res.send(flights);
// })
});
//Flight是我使用sequelize定义的模型
Flight.findFlights = function(leave_city,arrive_city,leave_date) {
return Flight.findAll({
where: {
leave_city: leave_city,
arrive_city: arrive_city,
leave_time: {
[Op.lt]: moment(leave_date).add(+1,"days").format("YYYY-MM-DD HH:mm"),//<
[Op.gt]: moment(leave_date).format("YYYY-MM-DD HH:mm")//>
}
}});
}
3.上面查询航班和再查询接口使用的是一样的函数调用,但是再查询接口返回的是一个空数组,再查询注释掉的调用函数直接赋值是有返回结果的,按理来说,参数都没错啊,直接赋值和传递参数有差别吗?是不是和异步啥的有关啊,不懂
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论