Promise参数是否需要传递给Knex迁移?

时间:2018-09-26 14:04:24

标签: javascript node.js migration knex.js

运行命令knex migrate:make table-name时 以下代码是新创建的文件中显示的内容。

exports.up = function (knex, Promise) {

  })
}

exports.down = function (knex, Promise) {
}

创建架构后,我注意到我从未使用默认提供的Promise参数(下面的代码)。

exports.up = function (knex, Promise) {
  return knex.schema.createTable('Skills', (table) => {
    table.increments('id').primary()
    table.string('skill')
    table.string('description')
    table.integer('rating')
  })
}

exports.down = function (knex, Promise) {
  return knex.schema.dropTable('Skills')
}

我也看过其他项目,意识到我从未对Promise争论做过任何事情。我想念什么吗?还是只是默认提供而并非总是需要?

2 个答案:

答案 0 :(得分:5)

不需要任何东西。

从那时起,节点没有内置的诺言(或者也许从knex允许选择所使用的诺言实现之时起提醒)起,这是一个历史性的争论。

它只是bluebird的一个实例(在knex 0.15.2中)。

答案 1 :(得分:1)

它不是必需的,但有时可用。作为Bluebird的实例,您可以在其中使用一些Bluebird函数。例如,如果您要插入(在数据库播种步骤上),则可能希望保持插入顺序。因此,出现了Bluebird.mapSeries。

Knex Promise Uses