2 回答
TA贡献1826条经验 获得超6个赞
您应该使用set而不是update.
tokens.set('access_token', final.access_token)
.set('expires_in', final.expires_in)
.set('refresh_token', final.refresh_token)
.set('refresh_date', moment())
.write()
更新方法接受这样的函数。
db.update('test1', (n) => 5555)
.update('test2', (n) => n + 1)
.write()
如果使用set,则只需为其赋值即可。
db.set('test1', 5555).set('test2', 3333).write()
当您使用 时moment,有两种方法可以使用。
// Way 1 with moment()
db.set('date', moment()).write()
// Way 2 with moment
db.update('date', moment).write()
TA贡献2011条经验 获得超2个赞
所以解决办法是:
我在另一个文件中调用包含 HTTP 请求的函数,如下所示:
app.get('/', async function(req, res) {
const access_token = req.query.code;
if (access_token) {
let authentication = await asyncExtAuth(access_token);
if (authentication == 84)
return res.send({error: "Please give a valid access_token"});
res.sendFile(path.join(__dirname + '/success_page/index.html'));
db.set('access_token', access_token).write()
tokens.set('primary_autorization_date', moment()).write()
console.log("Access Token successfully refreshed")
}
else
res.send({error: "Please specify an access token"})
})
其中我使用行第二次修改我的文件tokens.set('primary_autorization_date', moment()).write()。通过这样做,lowdb 不会考虑之前所做的修改,而是使用之前包含的信息重新修改我的文件。解决方案是在修改文件之前添加以下行tokens.read()以更新缓存:
app.get('/', async function(req, res) {
const access_token = req.query.code;
if (access_token) {
let authentication = await asyncExtAuth(access_token);
if (authentication == 84)
return res.send({error: "Please give a valid access_token"});
res.sendFile(path.join(__dirname + '/success_page/index.html'));
db.set('access_token', access_token).write()
tokens.read()
tokens.set('primary_autorization_date', moment()).write()
console.log("Access Token successfully refreshed")
}
else
res.send({error: "Please specify an access token"})
})
添加回答
举报