2017-02-20 49 views
0

我想为用户创建一个通知。在创建/保存|之前获得记录`id`风帆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

你不能做到这一点。 Id来自数据库,因此它只能在回调中访问。您可以在创建后立即更新它。 '''appuserNotifications.description ='你的带ID的desc'; appuserNotifications.save()''' – Bonanza

回答

1

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

这里有一些方法,使你的目标可以实现:

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

这很有帮助,但是查找示例在创建时描述了获取ID –

相关问题