Такая задачка пользователь выбирает 1 из трех таблиц (table1, 2,3) и вводит текст в поле по которому надо выполнить проверку по их наличию в 2 полях таблицы. И вывести до 20 name-ов и общее количество записей по совпадению, отсортировать все по алфавиту. Если ввожу жесткие данные в скрипт всё работает на ура, но вот как на node js сделать так, чтоб после клика создавался новый запрос и выводились актуальные данные.
P.S. на php писать могу, но с нодам тока начал.
P.P.S. прошу не судите строго.
вот мой код:
var mysql = require('mysql');
var http = require('http');
var table='table1';
var tex='';
/**
* @type {Pool}
*/
var db = null;
http.createServer(router).listen(8080);
console.log('Server running on port 8080.');
//------------------------------------------------//
/**
* @return {Pool}
*/
function getConncetion() {
if (db === null) {
db = mysql.createPool(getConfig())
}
return db;
}
/**
* @returns {Object}
*/
function getConfig() {
return {
limit: 10,
host: 'localhost',
user: 'root',
password: '123456',
database: 'mydb'
};
}
function router(req, res) {
getConncetion().query('Select * from '+table+' where name like "%'+tex+'%" or description like "%'+tex+'%" ORDER BY name;', function (error, fields, result) {
if (error) {
throw error;
}
res.writeHead(200, {'Content-Type': 'text/html'});
var rows=fields;
if(rows.length==0){
var k='Записей удовлетворяющих запосу нет';
var j=0;
}
if((rows.length>0) && (rows.length<=20)){
var k=rows.length;
var j=rows.length;
}
if(rows.length>20){
var k=rows.length;
var j=20;
}
var texts='';
for (let i=0; i<j; i++)
{
texts=texts+'\n\r'+rows[i].name;}
res.write('<!DOCTYPE html>'
+'<head>'
+'<meta charset="utf-8">'
+'<title>Тестовое задание</title>'
+'<script type="text/javascript" src="new.js"></script>'
+'</head>'
+'<body>'
+'<form name="form1">'
+'Выберите таблицу:'
+'<select name="table" size="1">'
+'<option selected value="table1">table1'
+'<option value="table2">table2'
+'<option value="table3">table3'
+'</select>'
+'<input type="text" name="string" placeholder="Введите cроку посика">'
+'<input type="submit" name="submit" value="Поиск" onclick="test();">'
+'</form>'
+'<br><br>')
res.end('<form name="form2">'
+'<input type="text" name="string" size = "30" value="'+k+'">'
+' <textarea cols="20" rows="'+2*j+'" wrap="hard"'
+'</textarea>'
+texts
+'</textarea>'
+'</form>'
+'</body>'
+'</html>');
});
}