首页 > 解决方案 > 每次请求都给出相同的输出

问题描述

我使用 node JS 和 mongo db 制作了一个 API。在那里,我创建了一条使用数据参数获取结果集的路线

这是我创建的路线

router.post('/getmyweeksales', async(req, res) => {

    function remDays(date, days) {
        var result = new Date(date);
        result.setDate(result.getDate() - days);
        console.log(result);

        return result;
    }

    const verified = jwt.verify(req.body.token, process.env.TOKEN_SECRET);
    const date = req.body.currentdate;


    const sales = await Sale.find({
        userID: verified._id,
        saletime: {
            "$gte": remDays(date, 7).toISOString(),"$lt": Date(date)
        }
    }).sort({ saletime: -1 });

    res.send(sales);
});

添加这些日期参数后,它会为我发送的每个请求提供相同的输出。

如果我删除这一行,它会给我每个结果而没有任何错误

saletime: {
                "$gte": remDays(date, 7).toISOString(),"$lt": Date(date)
            }

以下是我每次收到的。

[
    {
        "_id": "5e9b2b320b85d100178a3233",
        "userID": "5e931e4661c5c000170bcdc5",
        "saledata": [
            {
                "_id": "5e9b2b320b85d100178a3235",
                "itemName": "sample item 1",
                "quantity": "1",
                "itemTotal": "123.0"
            },
            {
                "_id": "5e9b2b320b85d100178a3234",
                "itemName": "sample item 3",
                "quantity": "1",
                "itemTotal": "123.0"
            }
        ],
        "total": "246",
        "saletime": "2020-04-18T22:00:40.044Z",
        "__v": 0
    }
]

我怎样才能在 7 天内收到所有结果?

标签: javascriptnode.jsmongodbapimongoose

解决方案


经过一些研究,我发现问题在于Date(date)它将日期转换为另一种格式,删除它Date并使用仅"$lt": date解决了问题。然后必须以与 mongodb 存储相同的格式发送数据


推荐阅读