运行命令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争论做过任何事情。我想念什么吗?还是只是默认提供而并非总是需要?
答案 0 :(得分:5)
不需要任何东西。
从那时起,节点没有内置的诺言(或者也许从knex允许选择所使用的诺言实现之时起提醒)起,这是一个历史性的争论。
它只是bluebird的一个实例(在knex 0.15.2中)。
答案 1 :(得分:1)
它不是必需的,但有时可用。作为Bluebird的实例,您可以在其中使用一些Bluebird函数。例如,如果您要插入(在数据库播种步骤上),则可能希望保持插入顺序。因此,出现了Bluebird.mapSeries。