I've been receiving this sequelize error
/node_modules/sequelize/lib/sequelize.js:508
this.importCache[path] = defineCall(this, DataTypes);
^
TypeError: defineCall is not a function
at module.exports.Sequelize.import (/node_modules/sequelize/lib/sequelize.js:508:32)
at /models/Index.js:16:33
at Array.forEach (native)
at Object.<anonymous> (/Users/vincentporta/Desktop/RCB_Classwork/cesarcell/models/Index.js:15:4)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
I've narrowed it down to the commented code in my Index.js
file below
"use strict";
var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var config = require(path.join(__dirname, '..', 'config', 'config.json'))[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);
var db = {};
fs
.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
})
This commented code below breaks it
//.forEach(function(file) {
// var model = sequelize.import(path.join(__dirname, file));
// db[model.name] = model;
// });
Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
Does anyone know why this error is occuring?
This usually means you're trying to import a non-sequelize object. If the name of your index file is Index.js
then you need to change it in your filter function (first letter is capital)
return (file.indexOf(".") !== 0) && (file !== "Index.js");
As it is case sensitive. Also check that there aren't any other files in your import folder which don't define sequelize model. If there are just add them to your filter function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With