Sequelize.js SequelizeJS-无效模型?

Sequelize.js SequelizeJS-无效模型?,sequelize.js,hapijs,Sequelize.js,Hapijs,我已经为Sequelize定义了一些模型,当我启动服务器时,所有模型都会出错 user.js is not a valid model 这是我的模型定义 'use strict'; module.exports = function(sequelize, DataTypes) { var User = sequelize.define('User', { id: DataTypes.UUIDV4, emailAddress: DataTypes.STRING,

我已经为Sequelize定义了一些模型,当我启动服务器时,所有模型都会出错

user.js is not a valid model
这是我的模型定义

'use strict';
 module.exports = function(sequelize, DataTypes) {
   var User = sequelize.define('User', {
     id: DataTypes.UUIDV4,
     emailAddress: DataTypes.STRING,
     firstName: DataTypes.STRING,
     lastName: DataTypes.STRING,
     mobileNumber: DataTypes.STRING,
     joinDate: DataTypes.DATE,
     emailConfirmed: DataTypes.BOOLEAN,
     accessLevel: DataTypes.INT,
     active: DataTypes.BOOLEAN
}, {
classMethods: {
  associate: function(models) {

  }
 }
});
return User;
};

为了生成模型,我使用了sequelize cli,因此我不确定它们为什么无效。我正在使用该插件使Sequelize与HapiJS一起工作。

您报告的错误仅在我包含models目录时显示在我这边,该目录有一个
index.js
文件,用于从DB加载模型,而不是sequalize读取的合适模型js文件

我用正确的凭证在
config/config.json
中设置了我的配置

然后,我通过CLI创建了一个用户模型,并进行了迁移以将其加载到数据库中
sequelize db:migrate

以下是我的配置:

{
  "development": {
    "username": "root",
    "password": "root",
    "database": "nodedb",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
}
然后我向Hapi注册了sequalize,如下所示,请注意,我要求sequalize Hapi插件从models one中的子目录加载模型,这样它就不会读取
index.js

'use strict';

var Hapi = require('hapi');

// Create a server with a host and port
var server = new Hapi.Server();
server.connection({
  host: 'localhost',
  port: 8000,
});

server.register(
    [
        {
            register: require('hapi-sequelize'),
            options: {
                database: 'nodedb',
                user: 'root',
                pass: 'root',
                dialect: 'mysql',
                port: 3306,
                models: 'models/models/*.js',
                sequelize: {
                    define: {
                        underscoredAll: true
                    }
                }
            }
        },
    ], function(err) {
        if (err) {
            console.error('failed to load plugin');
        }

        // Start the server
        server.start((err) => {
          if (err) {
            throw err;
          }

          console.log('Server running at:', server.info.uri);
        });
    }
);

我希望这能有所帮助。

以防将来有人遇到这个问题

该代码的问题是这一行

accessLevel: DataTypes.INT,
应该是,

accessLevel: DataTypes.INTEGER,

你还在面对这个问题吗?@RabeeAbdelWahab我是!如此之多,以至于我放弃了尝试Sequelize,我开始使用Bookshelf,但我还没有完全理解Bookshelf,所以我愿意回到Sequelize!仅供参考,我已将INT改为整数,错误仍然存在。对于没有整数字段的模型也会发生这种情况。谢谢Rabee,看起来您可能是正确的。我真的很感谢你的努力,非常感谢。当我回到家并报告时,我将以同样的方式实施!