我刚刚开始进入Sails for Node的框架。但是,当将例如用户添加到sails-mysql数据库时,似乎无法获得独特的要求。我可以使用相同的用户名和电子邮件添加无限数量的新用户。
根据我的阅读它应该工作,我也尝试使用sails-memory,并且这个确切的代码确实有效。这是我错过的东西吗?
module.exports = {
attributes: {
username: {
type: 'string',
required: true,
unique: true
},
firstname: {
type: 'string',
required: true
},
lastname: {
type: 'string',
required: true
},
password: {
type: 'string',
required: true
},
birthdate: {
type: 'date',
required: true
},
email: {
type: 'email',
required: true,
unique: true
},
phonenumber: 'string',
// Create users full name automaticly
fullname: function(){
return this.firstname + ' ' + this.lastname;
}
}
};
正如我上面提到的,这适用于内存存储。现在我也尝试过mongodb,它也可以用于鳍。
答案 0 :(得分:3)
在Twitter上获得了Sails.js的支持:“它使用数据库层 - 怀疑它是自动出现的问题。你会尝试使用新的MySQL数据库吗?”
这个答案确实有效,一个新的数据库,一切都正常工作:)
答案 1 :(得分:1)
只是添加到此,因为sails使用自动迁移,如果您最初启动服务器并且您的模型没有属性为唯一,则表是在没有唯一(索引)开关的情况下构建的。如果您随后将模型中的现有属性更改为unique
,则以后启动服务器时不会重建该表。
开发过程中的一个补救措施是将模型中的迁移设置为drop
,如下所示:
module.exports = {
migrate: 'drop' // drops all your tables and then re-create them Note: You loose underlying.
attributes: {
...
}
};
这样,每次启动服务器时都会重建db。这当然会丢弃任何现有数据。