如何引用在bookshelf.js中创建的记录?

时间:2018-10-24 18:29:00

标签: express bookshelf.js

我正在尝试使用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属性设置为当前时间-创建的时间(以分钟为单位)。由于它们都只是时间戳,我如何将这个值转换为分钟?谢谢!

1 个答案:

答案 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);
    });
});