Sails project - mysql connection 'Error: Consistency violation'
Sails project - mysql connection 'Error: Consistency violation'
我创建了一个新的 sails 项目并安装了 sails-permission。首先它工作正常。在创建与 Mysql 的连接并升起风帆后,它会抛出一个错误
error: Error: Consistency violation: A model (`passport`) references a
datastore which cannot be found ('mysql'). If this model definition
has an explicit
connection
property, check that it is spelled
correctly. If not, check your default
connection
(usually located in config/models.js).
模型 passport.js 位于 node_modules/sails-permission/api/models
。
config/connections.js
mysql: {
module : 'sails-mysql',
host : '127.0.0.1',
port : 3306,
user : 'review',
password : 'review',
database : 'reviews'
},
config/models.js
module.exports.models = {
connection: 'mysql',
migrate: 'alter'
};
node_modules/sails-permission/api/models
var bcrypt = require('bcryptjs');
function hashPassword (passport, next) {
var config = sails.config.auth.bcrypt;
var salt = config.salt || config.rounds;
if (passport.password) {
bcrypt.hash(passport.password, salt, function (err, hash) {
if (err) {
delete passport.password;
sails.log.error(err);
throw err;
}
passport.password = hash;
next(null, passport);
});
}
else {
next(null, passport);
}
}
var Passport = {
attributes: {
password: { type: 'string', minLength: 8 },
provider : { type: 'alphanumericdashed' },
identifier : { type: 'string' },
tokens : { type: 'json' },
user: { model: 'User', required: true },
validatePassword: function (password, next) {
bcrypt.compare(password, this.password, next);
}
},
beforeCreate: function (passport, next) {
hashPassword(passport, next);
},
beforeUpdate: function (passport, next) {
hashPassword(passport, next);
}
};
module.exports = Passport;
这是因为 sails-mysql 更新。 [https://github.com/balderdashy/sails-mysql/pull/328/files]。
将 module
更改为
中的 adapter
config/connection.js
mysql: {
adapter : 'sails-mysql',
host : '127.0.0.1',
port : 3306,
user : 'review',
password : 'review',
database : 'reviews'
},
我创建了一个新的 sails 项目并安装了 sails-permission。首先它工作正常。在创建与 Mysql 的连接并升起风帆后,它会抛出一个错误
error: Error: Consistency violation: A model (`passport`) references a
datastore which cannot be found ('mysql'). If this model definition
has an explicit
connection
property, check that it is spelled
correctly. If not, check your default
connection
(usually located in config/models.js).
模型 passport.js 位于 node_modules/sails-permission/api/models
。
config/connections.js
mysql: {
module : 'sails-mysql',
host : '127.0.0.1',
port : 3306,
user : 'review',
password : 'review',
database : 'reviews'
},
config/models.js
module.exports.models = {
connection: 'mysql',
migrate: 'alter'
};
node_modules/sails-permission/api/models
var bcrypt = require('bcryptjs');
function hashPassword (passport, next) {
var config = sails.config.auth.bcrypt;
var salt = config.salt || config.rounds;
if (passport.password) {
bcrypt.hash(passport.password, salt, function (err, hash) {
if (err) {
delete passport.password;
sails.log.error(err);
throw err;
}
passport.password = hash;
next(null, passport);
});
}
else {
next(null, passport);
}
}
var Passport = {
attributes: {
password: { type: 'string', minLength: 8 },
provider : { type: 'alphanumericdashed' },
identifier : { type: 'string' },
tokens : { type: 'json' },
user: { model: 'User', required: true },
validatePassword: function (password, next) {
bcrypt.compare(password, this.password, next);
}
},
beforeCreate: function (passport, next) {
hashPassword(passport, next);
},
beforeUpdate: function (passport, next) {
hashPassword(passport, next);
}
};
module.exports = Passport;
这是因为 sails-mysql 更新。 [https://github.com/balderdashy/sails-mysql/pull/328/files]。
将 module
更改为
adapter
config/connection.js
mysql: {
adapter : 'sails-mysql',
host : '127.0.0.1',
port : 3306,
user : 'review',
password : 'review',
database : 'reviews'
},