Nodejs同sequelize使用,查找数据返回情况有误。

发布于 2022-09-06 07:28:26 字数 2154 浏览 20 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文