diff --git a/server/db/search.js b/server/db/search.js index c230a7c..4849a11 100644 --- a/server/db/search.js +++ b/server/db/search.js @@ -3,6 +3,8 @@ var _ = require('underscore'); var db_keywords = require('./keywords.json'); var db_data = require('./data.json'); +var mysql = require('mysql'); +var connection = null; function innerProduct(values1, values2) { @@ -121,8 +123,30 @@ function searchBuildHints(searchParams, minScore, keyword, range, steps) { return hints; } -module.exports.getKeywords = function() { - return _.keys(db_keywords).sort(); +module.exports.loadDb = function(params) { + module.exports.freeDb(); + connection = mysql.createConnection(params); +} + +module.exports.freeDb = function() { + if (connection) { + connection.end(); + connection = null; + } +} + +module.exports.getKeywords = function(callback) { + connection.query('SELECT name FROM keywords ORDER BY name ASC', function(err, rows) { + if (err) { + throw err; + } + + var keywords = _.map(rows, function(row) { + return row['name'] + }); + + callback(keywords); + }); } module.exports.execQuery = function(query) { diff --git a/server/server.js b/server/server.js index c09327d..014ccab 100755 --- a/server/server.js +++ b/server/server.js @@ -9,9 +9,17 @@ var search = require('./db/search.js'); function main() { var app = express(); + search.loadDb({ + 'host': 'localhost', + 'user': 'hscd', + 'database': 'hscd' + }); + app.use('/keywords', function(req, res) { console.log('Requesting keywords'); - res.json(search.getKeywords()); + search.getKeywords(function(keywords) { + res.json(keywords); + }); }); app.use('/search', function(req, res) {