Node.js Sequelize-自定义创建方法

Node.js Sequelize-自定义创建方法,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,是否可以在Sequelize中创建自定义create方法。我希望这样我可以传入一个URL从中下载缩略图照片,然后使用该数据调用一个方法来下载照片,将其上载到S3,并将该S3 URL另存为thumbnailPhotoURL 下面是我尝试使用的语法示例: var Sequelize = require('sequelize'); var sequelize = new Sequelize('database', 'username', 'password'); var User = sequeli

是否可以在
Sequelize
中创建自定义
create
方法。我希望这样我可以传入一个URL从中下载缩略图照片,然后使用该数据调用一个方法来下载照片,将其上载到S3,并将该S3 URL另存为thumbnailPhotoURL

下面是我尝试使用的语法示例:

var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');

var User = sequelize.define('user', {
  username: Sequelize.STRING,
  birthday: Sequelize.DATE,
  thumbnailPhotoURL: Sequelize.STRING
});

sequelize.sync().then(function() {
  return User.create({
    username: 'janedoe',
    birthday: new Date(1980, 6, 20),
    // this will be used to download and upload the thumbnailPhoto to S3
    urlToDownloadThumbnailPhotoFrom: 'http://example.com/test.png'
  });
}).then(function(jane) {
  console.log(jane.get({
    plain: true
  }));
});

注意我是如何调用
用户的。使用
urlToDownloadThumbnailPhotoFrom
参数创建
,而不是创建钩子之前可以使用的
thumbnailPhotoURL
参数,无需定义自定义创建函数

var Sequelize = require('sequelize');
var sequelize = new Sequelize('database', 'username', 'password');

var User = sequelize.define('user', {
  username: Sequelize.STRING,
  birthday: Sequelize.DATE,
  thumbnailPhotoURL: Sequelize.STRING
});


User.beforeCreate(function(model, options, cb) { 
   var urlToDownloadThumbnailPhotoFrom = model.urlToDownloadThumbnailPhotoFrom;


//.....Here you write the logic to get s3 url using urlToDownloadThumbnailPhotoFrom and then assign it to model and call the call back it will automatically get saved

  model.thumbnailPhotoURL = thumbnailPhotoURL;
  cb();
});