sequelize.js - SequelizeJS - 模型无效?

标签 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,
     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,所以我不确定它们为什么无效。我正在使用 hapi-sequelize 插件使 Sequelize 与 HapiJS 一起工作。

最佳答案

您报告的错误仅在我包含模型目录时显示,该目录具有用于从数据库加载模型的 index.js 文件,并且不是用于 sequalize 读取的正确模型 js 文件。

我使用正确的凭据在 sequalize init 中设置了我的 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 插件从模型一内的子目录加载模型,这样它就不会读取 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);
        });
    }
);

我希望这有帮助。

关于sequelize.js - SequelizeJS - 模型无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36220952/

相关文章:

javascript - 如何使用带有 Sequelize 的 iLike 运算符进行不区分大小写的查询

jquery - 如何使用 Sequelize 修复 RAW 查询

google-api - Google 的 oauth2 端点 - v1 与 v2 的变化?

node.js - 如何在批量插入中使用 Mongoose 预中间件?

postgresql - 在 sequelize 上运行迁移时出错

mysql - 在sequelize js中查询联合表时出现意外输出

sequelize.js - 如何在 sequelize.js 中使用子查询?

node.js - 处理 Sequelize 迁移和初始化的工作流程?

node.js - 在 Hapi-auth-jwt2 中 token 过期时出现错误 500 而不是 401

hapijs - 如何在路由中添加中间件?