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.上面查询航班和再查询接口使用的是一样的函数调用,但是再查询接口返回的是一个空数组,再查询注释掉的调用函数直接赋值是有返回结果的,按理来说,参数都没错啊,直接赋值和传递参数有差别吗?是不是和异步啥的有关啊,不懂

阅读 2.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题