【发布时间】:2014-03-10 02:23:41
【问题描述】:
在续集中 >=1.7 we can use promises
你能解释一下我如何在这段代码中从每个用户那里获取值吗:
var User = sequelize.define("user", {
username: Sequelize.STRING
})
User
.sync({ force: true })
.then(function() { return User.create({ username: 'John' }) })
.then(function(john) { return User.create({ username: 'Jane' }) })
.then(function(jane) { return User.create({ username: 'Pete' }) })
.then(function(pete) {
console.log("we just created 3 users :)")
console.log("this is pete:")
console.log(pete.values)
// what i want:
console.log("this is jane:")
console.log(jane.values)
console.log("this is john:")
console.log(john.values)
})
UPD
所有值都需要设置与其他模型的关联。 其实我需要一些这样的代码:
User.hasMany(Group)
Group.hasMany(User)
User
.sync({ force: true })
.then(function() { return User.create({ username: 'John' }) })
.then(function(john) { return User.create({ username: 'Jane' }) })
.then(function(jane) { return User.create({ username: 'Pete' }) })
.then(function(pete) { return Group.findOrCreate({id: 1}) })
.then(function(group) {return group.setUsers([john, jane, pete])})
.then(function(result) { console.log(result)})
})
【问题讨论】:
-
我从未听说过 sequelize,但
sync({force:true})看起来你不需要异步承诺 :-) -
其实
sync({force:true})例如在项目启动时调用这个方法可以去掉 -
sync 在这种情况下与 Promise 无关;这是一个强制创建表的 sequelize 选项。
标签: javascript promise sequelize.js bluebird