首页 > 解决方案 > 类型错误:defineCall 不是函数

问题描述

当 index.js 尝试从 members.js 导入模型时,我遇到了错误,我不知道哪里出错了。members.js 是我现在唯一的导入。

编辑以显示完整的 index.js 以澄清导入和其他功能。

index.js

"use strict";

const fs = require("fs");
const path = require("path");
const Sequelize = require("sequelize");
const basename = path.basename(module.filename);
let env = process.env.NODE_ENV || "development";
const config = require(__dirname + "/../config/config.json")[env];
let db = {};

if (config.use_env_variable) {
  var sequelize = new Sequelize(process.env[config.use_env_variable]);
} else {
  var sequelize = new Sequelize(config.database, config.username, config.password, config);
}

fs
  .readdirSync(__dirname)
  .filter(function(file) {
    return (file.indexOf(".") !== 0) && (file !== basename) && (file.slice(-3) === ".js");
  })
  .forEach(function(file) {
    var model = sequelize["import"](path.join(__dirname, file));
    db[model.name] = model;
  });

Object.keys(db).forEach(function(modelName) {
  if (db[modelName].associate) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

成员.js

module.exports = function(sequelize, type) {
  var Members = sequelize.define('Members', {
    id: {
      type: type.INTEGER,
      primaryKey: true,
      autoIncrement: true
    }
  };
  return Members;
};

标签: node.jssequelize.js

解决方案


推荐阅读