唯一不能在Node.js Sails.js“sails-mysql”

我刚开始进入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来做它的工作。

在Twitter上获得Sails.js的支持:“它使用db层 – 怀疑这是一个自动化问题,你会尝试新的MySQL数据库吗?

这个答案确实工作,一个新的数据库,一切都只是工作:)

只是为了增加这一点,因为sails使用自动迁移,所以如果你最初启动服务器,并且你的模型没有一个唯一的属性,那么这个表就没有唯一的(索引)开关。 如果您然后将模型中的现有属性更改为unique ,那么在启动服务器的后续时间内,表将不会重build。

开发过程中的一个补救措施是在模型中设置迁移,如下所示:

 module.exports = { migrate: 'drop' // drops all your tables and then re-create them Note: You loose underlying. attributes: { ... } }; 

这样,每次启动服务器时,数据库都将被重build。 这当然会丢弃任何现有的数据。