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

How can I reference a record that has been created in 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 是未定义的,此外,这不是引用我正在寻找的会话的正确方法。那么,正确的方法是什么?此外,如果我能够让它工作,我会尝试将持续时间属性设置为当前时间 - 创建的时间,以分钟为单位。由于它们都只是时间戳,我如何将此值转换为分钟?谢谢!

您必须先获取您的模型,否则它不会包含您数据库中的任何数据:

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