我正在尝试使用bookshelf.js更新记录。更新时,我想引用其创建时的时间戳。我的代码如下:
router.patch('/session/:id', (req,res) => {
const time = new Date()
console.log(time.getTime())
Session
.forge({id: req.params.id})
.save({isTermed: true, duration: time.getTime() - Session.created_at})
.then((session) => {
res.json(session);
})
.catch((error) => {
console.error(error);
return res.sendStatus(500);
});
});
但是,我认为Session.created_at是未定义的,而且,这不是引用我要查找的会话的正确方法。那么,正确的方法是什么?另外,如果我能够使其正常工作,那么我尝试将duration属性设置为当前时间-创建的时间(以分钟为单位)。由于它们都只是时间戳,我如何将这个值转换为分钟?谢谢!
答案 0 :(得分:1)
您必须先获取模型,否则它将没有数据库中的任何数据:
router.patch('/session/:id', (req,res) => {
const time = new Date()
console.log(time.getTime())
Session
.forge({id: req.params.id})
.fetch()
.then((session) => {
return session.save({
isTermed: true,
duration: time.getTime() - session.created_at
})
})
.then((session) => {
res.json(session);
})
.catch((error) => {
console.error(error);
return res.sendStatus(500);
});
});