Node.js 使用sequelizejs保存之前获取ID

Node.js 使用sequelizejs保存之前获取ID,node.js,express,sequelize.js,Node.js,Express,Sequelize.js,我想在保存到数据库之前获取项目的ID。。。我知道ID是在保存过程中生成的,但有解决方案吗 var photo = dbContext.photo.build(photo); console.log(photo.id); // doesn't work photo.save().success(function(photo) { console.log(photo.id); // works callback(photo); }); 理论上,您可以查询自动递增生成的下一个id,请

我想在保存到数据库之前获取项目的ID。。。我知道ID是在保存过程中生成的,但有解决方案吗

var photo = dbContext.photo.build(photo);
console.log(photo.id); // doesn't work
photo.save().success(function(photo) {
    console.log(photo.id); // works
    callback(photo);
});

理论上,您可以查询自动递增生成的下一个id,请参见

但是,请记住,您必须在事务中执行此操作,在查询表之前锁定表,以防止其他进程插入和占用您刚刚获得的id。看看


然而,这将变得非常非常复杂,非常非常非常快。你确定没有其他办法解决这个问题吗?保存记录后,您不能更新名称吗?这将非常简单?

在保存之前不可能获得ID,除非您单独查询最高ID并添加1。为什么保存前需要ID?我需要保存前的ID来更改项目的文件名。。。projectd-DAY-MONTH-YEAR.png,但是我在保存之前上传了文件,这就是问题所在…我找到了一个最好的方法,我保存在我的数据库中,然后更新添加的数据,然后上传我的文件,它工作得非常好。。。