在创建/保存之前获取记录`id`帆Js

时间:2017-02-20 13:40:28

标签: javascript node.js mongodb sails.js

我正在尝试为用户创建通知。

在此描述中的通知网址如此http://localhost:1337/invited/accept?referrer=msgIcon&id=this-notification-id,网址具有此新创建通知的ID。

  AppUserNotification.create({
    projectId: projectId,
    appuser: appusers.id,
    notificationTitle: 'You are invited in project',
    isRead: 0,
    description: 'You are invited in project collaboration, '
    + 'please accept invitation by following the link.\nHave a good day !\n'
    + 'Accept Invitation http://localhost:1337/invited/accept?referrer=msgIcon&id=this-notification-id',
  }).exec(function (err, appuserNotifications) {
    apiStatus = 1; // heading toward success
    if (err){
      return false;
    }else if(appuserNotifications){
      return true;
    }
  });//</after AppUserNotification.create()>

我想要做的是使用这个新创建的通知保存描述中的链接。但无法做到这一点。 请帮帮我。

1 个答案:

答案 0 :(得分:2)

通过默认,在创建记录期间由数据库生成id。所以只有在创建后才能访问。

以下是实现目标的一些方法:

  1. 新属性:添加在说明网址中使用的另一个唯一属性。它可以在创建之前随机生成(例如,可以使用UUID
  2. 使用自定义ID :在模型中设置autoPK: false,自己生成id; (我使用beforeCreate作为主键UUIDid挂钩中为MySQL做了这个,不确定MongoDB)
  3. 创建后更新:使用afterCreate挂钩更新说明id
  4. 新模型方法:在模型中定义一个方法,说getDescription(),返回类似this.description + this.id的内容。
  5. 覆盖toJSON() http://sailsjs.com/documentation/reference/waterline-orm/records/to-json