javascript - 每次请求都给出相同的输出
问题描述
我使用 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 天内收到所有结果?
解决方案
经过一些研究,我发现问题在于Date(date)
它将日期转换为另一种格式,删除它Date
并使用仅"$lt": date
解决了问题。然后必须以与 mongodb 存储相同的格式发送数据
推荐阅读
- vue.js - 使用 Vuejs 时如何优化我的 app.js 文件
- arrays - Bash 数组未正确写入变量
- javascript - 有 2 个名称的 JavaScript 函数?
- amazon-web-services - Amazon Redshift 是否有自己的存储后端
- python - 使用 if 根据值添加列值
- bash - Bash 终端:仅将特定行写入日志文件
- docker - 如何使用 docker run 命令传递环境变量?
- css - 如何使用 react-native-svg 找到宽度、高度和 viewBox 的正确值
- visual-studio-code - VSCode“查找全部”不查找所有文件,仅打开文件
- html - Ionic 5 - 如何将自定义样式应用于离子输入