UNPKG

1.37 kBJavaScriptView Raw
1
2module.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};