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

Commit 291fde51 by Sascha Depold

new class for querying the database + eventdriven ftw

1 parent 10111c99
var Utils = require("./utils")
, ModelDefinition = require("./model-definition")
, Query = require("./query")
var Sequelize = module.exports = function(database, username, password, options) {
options = options || {}
......@@ -26,17 +27,7 @@ var instanceMethods = {
},
query: function(sql, callback) {
var client = new (require("mysql").client)({
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()
return new Query(this.config).run(sql)
}
}
......
......@@ -12,12 +12,24 @@ var ModelDefinition = module.exports = function(name, attributes, options) {
this.modelManager = null // defined by model-manager during addModel
}
ModelDefinition.prototype.sync = function() {
console.log(QueryGenerator.createTableQuery(this.tableName, this.attributes))
ModelDefinition.prototype.sync = function(options) {
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() {
console.log(QueryGenerator.dropTableQuery(this.tableName))
var query = QueryGenerator.dropTableQuery(this.tableName)
return this.modelManager.sequelize.query(query)
}
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!