Задать вопрос
@Miroslavux

Как можно выполнить на node js новый запрос к mysql после клика?

Такая задачка пользователь выбирает 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>');
    });
}
  • Вопрос задан
  • 81 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы