SequelizeJS - Неправильные модели?

Я определил некоторые модели для 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.

2 ответа

Решение

На случай, если кто-нибудь столкнется с этим вопросом в будущем;

Проблема с этим кодом заключается в этой строке;

accessLevel: DataTypes.INT,

так должно быть;

accessLevel: DataTypes.INTEGER,

Ошибка, о которой вы сообщаете, показалась на моей стороне только тогда, когда я включил каталог моделей, в котором есть index.js файл, который используется для загрузки моделей из БД и не является подходящим файлом js модели, из которого можно читать из sequalize.

я сделал sequalize init настроить мой конфиг внутри config/config.json с надлежащими полномочиями.

Затем я создал пользовательскую модель через CLI и перенес ее в базу данных. sequelize db:migrate

ниже моя конфигурация:

{
  "development": {
    "username": "root",
    "password": "root",
    "database": "nodedb",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
}

Затем я зарегистрировал sequalize в Hapi следующим образом: обратите внимание, что я прошу плагин 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);
        });
    }
);

Надеюсь, это поможет.

Другие вопросы по тегам