为什么module.exports无法正确导出函数?Knex迁移运行报错
问题原因
你定义addDefaultColumns、createNameTable两个工具函数的文件是tableUtils.js,但迁移文件中错误地从存储表名常量的../../src/constants/tableNames路径导入这两个函数,tableNames文件没有对应导出,自然会抛出addDefaultColumns is not a function的类型错误。
修复方案
- 修正迁移文件的工具函数导入路径,指向
tableUtils.js的实际存放位置即可,示例修改如下:
const tableNames = require('../../src/constants/tableNames'); // 此处将导入路径替换为你项目中tableUtils.js的实际路径即可 const { createNameTable, addDefaultColumns } = require('../../src/constants/tableUtils'); exports.up = async (knex) => { await knex.schema.createTable(tableNames.user, table => { table.increments().notNullable() table.string('name').notNullable() table.string('email', 254).notNullable().unique() table.string('password', 127).notNullable() table.string('avatar_url', 2000) table.string('color', 15).defaultTo('#dddddd') table.specificType('balance', 'money').defaultTo('0') addDefaultColumns(table) }) };
- 修正后重新执行
knex migrate:latest即可完成迁移。
内容的提问来源于stack exchange,提问作者Robert Jamborski
相关产品推荐
相关产品推荐

