javascript Knex.js返回插入的记录ID

kq0g1dla  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(188)

我在quoteNotes表中插入了一条注解,当我插入它并控制台记录res.it时,它没有给予我插入注解的记录。

router.post('/:id/notes', (req, res) => {
  const {id} = req.params;
  const note = req.body;
  note.quote_id = id

  // if(note.note === "") return res.status(422)
  //   .json({message: 'Note cannot be empty'});

  Quotes.addNote(note).then((quoteNote) => {
    console.log(quoteNote)
    res.status(200).json(quoteNote);
  });
});

控制台日志=〉

Result {
  command: 'INSERT',
  rowCount: 1,
  oid: 0,
  rows: [],
  fields: [],
  _parsers: undefined,
  _types: TypeOverrides {
    _types: {
      getTypeParser: [Function: getTypeParser],
      setTypeParser: [Function: setTypeParser],
      arrayParser: [Object],
      builtins: [Object]
    },
    text: {},
    binary: {}
  },
  RowCtor: null,
  rowAsArray: false
}
lyr7nygr

lyr7nygr1#

想明白了。
需要将.returning('id')添加到查询中。

function addNote(data) {
  return db('quote_notes')
    .insert(data)
    .returning('id');
}
2ekbmq32

2ekbmq322#

在我使用mysql的例子中,await insert({...})返回了一个id作为单个元素的数组,并且在使用returning('id')时,我得到了一个错误,说mysql不支持它。

相关问题