1 |
|
2 | module.exports = function(cb){
|
3 |
|
4 | var env = this;
|
5 | var config = this.config;
|
6 |
|
7 | if(!config.mysql) return cb();
|
8 |
|
9 | var _ = require("underscore");
|
10 | var fs = require("fs");
|
11 | var mysql = require('mysql');
|
12 | var connection = mysql.createConnection(config.mysql);
|
13 |
|
14 | connection.config.queryFormat = function (query, data) {
|
15 | if (!data) return query;
|
16 | if(data.options) query = query.replace(/(@\w+)/g, function (txt, key){
|
17 | key = key.slice(1);
|
18 | if(data.options.hasOwnProperty(key)) {
|
19 | if(typeof data.options[key] === "function") return data.options[key].call(data.context,data.values, data.options);
|
20 | else return data.options[key];
|
21 | }
|
22 | return txt;
|
23 | });
|
24 |
|
25 | if(data.values) query = query.replace(/([#]\w+)/g, function (txt, key){
|
26 | key = key.slice(1);
|
27 | if(data.values.hasOwnProperty(key)) return mysql.escape(data.values[key]);
|
28 | return txt;
|
29 | });
|
30 |
|
31 | return query;
|
32 | };
|
33 |
|
34 | require.extensions['.sql'] = function(module, filename){
|
35 | module.exports = fs.readFileSync(filename, 'utf8').toString();
|
36 | };
|
37 |
|
38 | connection.connect(function(err){
|
39 | if(err) return cb(err);
|
40 | env.engines.mysql = connection;
|
41 | env.i.do("log.sys", "mysql", "Connected to MySQL on "+(config.mysql.host || "localhost")+":"+(config.mysql.port||3306)+"/"+config.mysql.database );
|
42 | cb();
|
43 | });
|
44 |
|
45 | };
|