You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 16:57:02