SequelizeJS - 模型无效?
SequelizeJS - Invalid models?
我已经为 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);
});
}
);
希望对您有所帮助。
以防以后有人遇到这个问题;
此代码的问题在于这一行;
accessLevel: DataTypes.INT,
应该是;
accessLevel: DataTypes.INTEGER,
我已经为 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);
});
}
);
希望对您有所帮助。
以防以后有人遇到这个问题;
此代码的问题在于这一行;
accessLevel: DataTypes.INT,
应该是;
accessLevel: DataTypes.INTEGER,