How to handle an Ajax request on the server:

html + script:

<div id = "divTXT"> Сюда подгрузятся данные TXT </div> <button id = "buttonGetData">Получить данные </button> <script> var buttonGetData = document.getElementById('buttonGetData'); buttonGetData.addEventListener('click', ShowData); function ShowData(event) { event.preventDefault(); $.ajax({ url: "/server.js", response:'text', success: function(receive){ $("#divTXT").append(receive); } }); </script> 

Server:

  var http = require("http"); var url = require("url"); var mysql = require('mysql'); var fs = require('fs'); formidable = require('formidable'); function onServer(route, newServer, reqtype) { function onRequest(request, response){ var pathname = url.parse(request.url).pathname; try {pathname = pathname.substring(1, pathname.length);} catch (err){} if (request.method === 'POST') post(request, response, pathname); else{ if (pathname !== "favicon.ico") { openPage(response, pathname); } } } function openPage(response, pathname){ var path = route(pathname); var html = ""; html = newServer(path); var type = reqtype(path); response.writeHead(302, {"Content-Type" : "text/" + type}); response.write(html); response.end(); } function post(request, response, pathname){ switch(pathname){ case "registration.html": var form = new formidable.IncomingForm(); form.parse(request, function(err, params, files){ fs.appendFile('txt/user.txt', params["login"]); fs.appendFile('txt/user.txt', params["sPass"]); openPage(response, "successfulRegistration.html"); }); break; case "autorization.html": var form = new formidable.IncomingForm(); form.parse(request, function(err, params, files){ connection.query('SELECT * from loginsandpasswords', params, function(err, rows, fields){ if (!err){ for (var i = 0; i < rows.length; i++){ if (rows[i].login === params.login && rows[i].password === params.password){ console.log('5'); console.log('authorization'); openPage(response, "home.html"); return 0; } } console.log(params); } }); }); break; case "messages.html": var form = new formidable.IncomingForm(); form.parse(request, function(err, params, files){ if (!err) { console.log(params); connection.query("INSERT INTO messages VALUES (?,?,?,?)", [params["name"], params["email"], params["subject"], params["comment"]], function (err, result) { if (!err) console.log('comment has been add'); else console.log(err.message); }); } else console.log(err.message); }); break; case "mentions.html": var form = new formidable.IncomingForm(); form.parse(request, function(err, params, files){ if (!err) { console.log(params); connection.query("INSERT INTO mentions VALUES (?,?)", [params["name"], params["comment"]], function (err, result) { if (!err) console.log('comment has been add'); else console.log(err.message); }); } else console.log(err.message); }); break; default: console.log("Uncorrect choice"); } } http.createServer(onRequest).listen(5656); console.log("Server started on port 5656"); }; exports.onServer = onServer; 
  • first create a server .. or should I write it too? - C.Raf.T
  • @ C.Raf.T, the server is created, the query processing approach is of interest - bsuart
  • so show the server part ... - C.Raf.T
  • @ C.Raf.T, you need to process the request - sending the data from the .txt document to the server, implementation? - bsuart
  • @ C.Raf.T, showed, but no answer ( - bsuart

1 answer 1

can be like this:

 function foo(path) { fs.readFile(path, 'utf8', (err, data)=>{ if(err){ // exception console.log(err) }else{ console.log(data) // data текст в фаиле. оборачиваете его во что хотите и вперед. //(пример: request.JSON(data)) } }) }