SailsJS - 使用自定义ID创建新记录

时间:2014-10-06 15:27:04

标签: javascript node.js mongodb sails.js

在SailsJS中

,当您创建新记录时,例如创建新用户,SailsJS将为该记录生成随机ID。在我正在开发的项目中,我想使用之前生成的当前ID,而不是让sailsjs为我生成。

原因是我试图使两个sailsjs实例彼此同步,并且记录的ID必须匹配。所以当我从一个sailsjs导入数据到另一个时,我想确保一切都完全相同。我对常规数据没有任何问题,例如姓名,地址,电子邮件。但是当涉及到ID帆时,拒绝创建具有给定Id的记录。

请注意,我正在使用MongoDB,它会生成"5420873b5b9338143ac15c09"

等ID

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

基本上在您的模型中,您必须添加autoPK:false 但是,如果您现在尝试运行sailsjs,则会出现错误

Error: Trying to create an association on a model that doesn't have a Primary Key.

要解决此问题,您需要为表指定不同的主键,在我的情况下是用户表。例如,您可以将SSN设置为主键。

ssn: {
       type: "string",
       primaryKey: true
     }

但是现在请注意,如果你试图用旧的ID打不到sailsjs,因为新PK现在不同了。

Will not work : localhost:1337/user/id 
Will work: localhost:1337/user/ssn