Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 编辑Knex insert以获取参数数组_Javascript_Node.js_Knex.js - Fatal编程技术网

Javascript 编辑Knex insert以获取参数数组

Javascript 编辑Knex insert以获取参数数组,javascript,node.js,knex.js,Javascript,Node.js,Knex.js,我有这个Knex更新: NoteTag.createNoteTag = async (noteId, tagId, db) => ( db.sequelize.knex('note_tags') .returning([ 'id', 'note_id', 'tag_id', ]) .insert({ note_id: noteId, tag_id: tagId,

我有这个
Knex
更新:

NoteTag.createNoteTag = async (noteId, tagId, db) => (
    db.sequelize.knex('note_tags')
      .returning([
        'id',
        'note_id',
        'tag_id',
      ])
      .insert({
        note_id: noteId,
        tag_id: tagId,
      })
  );
我希望能够将
tagId
作为一个数组传递,以便可以将多个标记添加到注释中


我可以编辑函数来执行此操作吗?如果可以,如何操作?

Knex的insert也支持对象数组,因此您可以迭代传递的标记ID并将它们映射到insert对象

NoteTag.createNoteTag = async (noteId, tagIds, db) =>
  db.sequelize
    .knex('note_tags')
    .returning(['id', 'note_id', 'tag_id'])
    .insert(tagIds.map(tagId => ({ node_id: nodeId, tag_id: tagId })));

谢谢与其硬编码
insert
值,我假设我可以在
insert
中包含一些函数,以循环通过
tagId
数组,并包含在insert中找到的任何值。正确,签出我的更新代码,实际上,如果我传入的tagId超过1个,例如
[1,3]
两个数据库都正确添加到数据库中,但只返回第一个数据库。正确,如果您的数据库是MYSQL,这是一个数据库限制,而不是Knex的限制