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

Commit 291fde51 by Sascha Depold

new class for querying the database + eventdriven ftw

1 parent 10111c99
var Utils = require("./utils") var Utils = require("./utils")
, ModelDefinition = require("./model-definition") , ModelDefinition = require("./model-definition")
, Query = require("./query")
var Sequelize = module.exports = function(database, username, password, options) { var Sequelize = module.exports = function(database, username, password, options) {
options = options || {} options = options || {}
...@@ -26,17 +27,7 @@ var instanceMethods = { ...@@ -26,17 +27,7 @@ var instanceMethods = {
}, },
query: function(sql, callback) { query: function(sql, callback) {
var client = new (require("mysql").client)({ return new Query(this.config).run(sql)
user: this.username,
password: this.password,
host: this.config.host,
port: this.config.port,
database: this.config.database
})
client.connect()
client.query(sql)
client.end()
} }
} }
......
...@@ -12,12 +12,24 @@ var ModelDefinition = module.exports = function(name, attributes, options) { ...@@ -12,12 +12,24 @@ var ModelDefinition = module.exports = function(name, attributes, options) {
this.modelManager = null // defined by model-manager during addModel this.modelManager = null // defined by model-manager during addModel
} }
ModelDefinition.prototype.sync = function() { ModelDefinition.prototype.sync = function(options) {
console.log(QueryGenerator.createTableQuery(this.tableName, this.attributes)) options = options || {}
var self = this
var doQuery = function() {
var query = QueryGenerator.createTableQuery(self.tableName, self.attributes)
return self.modelManager.sequelize.query(query)
}
if(options.force)
this.drop().on('end', function() { return doQuery() })
else
return doQuery()
} }
ModelDefinition.prototype.drop = function() { ModelDefinition.prototype.drop = function() {
console.log(QueryGenerator.dropTableQuery(this.tableName)) var query = QueryGenerator.dropTableQuery(this.tableName)
return this.modelManager.sequelize.query(query)
} }
ModelDefinition.prototype.create = function(values) { ModelDefinition.prototype.create = function(values) {
......
var Query = module.exports = function(databaseConfig) {
this.config = databaseConfig
}
require("sys").inherits(Query, require('events').EventEmitter)
Query.prototype.run = function(query) {
var self = this
var client = new (require("mysql").Client)({
user: this.config.username,
password: this.config.password,
host: this.config.host,
port: this.config.port,
database: this.config.database
})
console.log('Executing: ' + query)
client.connect()
client.query(query, function() { self.emit('end') })
client.end()
return this
}
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!