不要怂,就是干,撸起袖子干!

Commit 00ebd92a by Sascha Depold

pass associations on success to the callback + example

1 parent 98a5bff1
exports.getProjectClass = function(Sequelize, sequelize) {
var Project = sequelize.define("Project", {
name: Sequelize.STRING,
description: Sequelize.TEXT
})
/*
Here comes further Project logic
*/
}
\ No newline at end of file
exports.getTaskClass = function(Sequelize, sequelize) {
var Task = sequelize.define("Task", {
name: Sequelize.STRING,
deadline: Sequelize.DATE,
importance: Sequelize.INTEGER
})
/*
Here comes further Task logic
*/
}
\ No newline at end of file
var Sequelize = require(__dirname + "/../../lib/sequelize/Sequelize").Sequelize,
sequelize = new Sequelize("sequelize_test", "test", "test"),
Project = sequelize.import(__dirname + "/Project").Project,
Task = sequelize.import(__dirname + "/Task").Task
Project.hasMany('tasks', Task)
Task.belongsTo('project', Project)
sequelize.drop(function(errors) {
if(errors.length > 0) return Sequelize.Helper.log(errors)
sequelize.sync(function(errors) {
if(errors.length > 0) return Sequelize.Helper.log(errors)
new Project({
name: 'Sequelize',
description: 'A nice MySQL ORM for NodeJS'
}).save(function(project) {
var task1 = new Task({
name: 'Choose a nice MySQL connector',
deadline: new Date(),
importance: 10
})
var task2 = new Task({
name: 'Build the rest',
deadline: new Date(),
importance: 90
})
Sequelize.chainQueries([{save: task1}, {save: task2}], function() {
project.setTasks([task1, task2], function(tasks) {
Sequelize.Helper.log(project)
Sequelize.Helper.log(tasks)
})
})
})
})
})
\ No newline at end of file
module.exports = function(sequelize, DataTypes) {
return sequelize.define("Project", {
name: DataTypes.STRING,
description: DataTypes.TEXT
})
}
\ No newline at end of file
module.exports = function(sequelize, DataTypes) {
return sequelize.define("Task", {
name: DataTypes.STRING,
deadline: DataTypes.DATE,
importance: DataTypes.INTEGER
})
}
\ No newline at end of file
var Sequelize = require(__dirname + "/../../index")
, config = require(__dirname + "/../../test/config")
, sequelize = new Sequelize(config.database, config.username, config.password, {logging: false})
, Project = sequelize.import(__dirname + "/Project")
, Task = sequelize.import(__dirname + "/Task")
Project.hasMany(Task)
Task.belongsTo(Project)
sequelize.sync({force: true}).on('success', function() {
Project
.create({ name: 'Sequelize', description: 'A nice MySQL ORM for NodeJS' })
.on('success', function(project) {
Task.create({ name: 'Choose a nice MySQL connector', deadline: new Date(), importance: 10 })
.on('success', function(task1) {
Task.create({ name: 'Build the rest', deadline: new Date(), importance: 90 })
.on('success', function(task2) {
project.setTasks([task1, task2]).on('success', function(tasks) {
console.log(project)
console.log(tasks)
})
})
})
})
})
\ No newline at end of file
......@@ -86,7 +86,7 @@ HasManyDoubleLinked.prototype.injectSetter = function(emitter, oldAssociations,
chainer
.run()
.on('success', function() { emitter.emit('success', null) })
.on('success', function() { emitter.emit('success', newAssociations) })
.on('failure', function(err) { emitter.emit('failure', err) })
})
}
\ No newline at end of file
......@@ -29,6 +29,6 @@ HasManySingleLinked.prototype.injectSetter = function(emitter, oldAssociations,
})
chainer
.run()
.on('success', function() { emitter.emit('success', null) })
.on('failure', function() { emitter.emit('failure', null) })
.on('success', function() { emitter.emit('success', newAssociations) })
.on('failure', function(err) { emitter.emit('failure', err) })
}
\ No newline at end of file
......@@ -85,8 +85,8 @@ HasMany.prototype.injectSetter = function(obj) {
currentAssociatedObjects.push(newAssociatedObject)
instance[self.accessors.set](currentAssociatedObjects)
.on('success', function() { customEventEmitter.emit('success', null) })
.on('failure', function() { customEventEmitter.emit('failure', null) })
.on('success', function(instances) { customEventEmitter.emit('success', instances) })
.on('failure', function(err) { customEventEmitter.emit('failure', err) })
})
})
return customEventEmitter.run()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!