【发布时间】:2017-12-27 19:06:28
【问题描述】:
我在创建从 MongoDB 数据库读取的 Node REST API 时遇到了一个问题(在这种情况下,我使用的是 Mongodb-native,而不是 Mongoose)。我试图在我从本地文件读取的给定时间戳之后查询所有结果。然后,我获取最新事件的时间戳并将其保存到文件中(目标是此方法应返回上一个查询的最新事件,如果这有意义的话)。
这是我目前的代码:
router.get("/latestevent", function(req, res, next) {
db.collection("events", function(err, collection){
var contents = new Date(fs2.readFileSync('latesttimeevent','utf8')).toISOString();
console.log("Newest previous date is: " + contents);
var date = String(contents);
collection.find({event: {$regex: '00FF0004'},eventtime: {'$gte':new Date(date)}}).sort({$natural:-1}).limit(10).toArray(function(err, data)
{
fs.writeFile("latesttimeevent",data[0].eventtime, function(err)
{
if(err)
{
return console.log(err);
}
console.log("Cell File was saved");
});
res.json(data);
})
});
});
Console.log("Newest previous date is: " + contents) 以这种格式返回一个日期:2017-12-27T18:57:37.000Z。当我将该日期插入函数 new Date(date) -> new Date("2017-12-27T18:57:37.000Z") 时,我能够在进行 REST 调用时成功获取信息。但是,现在的方式是,当尝试使用 Postman 进行 GET 调用时,它只是缓冲(有时它会在第一次尝试时工作,但之后会缓冲)。
知道我在这里做错了什么吗?我尝试使用不同的字符串选项来处理 new Date(...),删除 new Date,添加 toISOString() 等,但没有成功。
谢谢!
【问题讨论】:
标签: javascript node.js mongodb mongodb-query node-mongodb-native