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();
});