как просто создать событие onClick в JS на стороне сервера? - PullRequest
0 голосов
/ 11 сентября 2018

Я просто хотел это для теста.

Например, вот код сервера в узле JS.

Как я упоминал ниже, я хочу сделать событие onclick правильно и просто.

Потому что это только для проверки на стороне клиента.

Как это решить? это неправильный способ использовать, как это?

 http.createServer((request, response) => {
  return request
  .on('error', (err) => { 
    console.error(err);
  })
  .on('data', (data) => { 
      //data exists

    }).
  on('end',()=>{
    response.statusCode = 200; 
    response.writeHead(200, {'Content-Type':'text/html'});
    response.write('<html>'); 

    response.write('<h1> List</h1>'); 
    response.write('<button onclick="sendToServer(data)">submit</button>'); <--this line
    //I want to make onclick event for above 
    //but it excutes even user didnt click the button
    response.write('</html>'); 
   });
}).listen(3030);


function  sendToServer(data){
   request.post({
        headers: {
                  'Accept': 'application/json, text/plain, */*',
                  'Content-Type': "application/json"
                  },
            url:'https://...',
            body:JSON.stringify(data)
            }, function(e, r, body){
              console.log(body);
      });
 }

1 Ответ

0 голосов
/ 11 сентября 2018
  1. Вам необходимо реализовать http-маршрут для прослушивания запроса на стороне клиента на стороне сервера

  2. Создать функцию для отправки запроса на сервер на стороне клиента (я использовал простой метод jquery ajax get)

и окончательный рабочий код здесь

var http = require('http');
var HttpDispatcher = require('httpdispatcher');;
var dispatcher = new HttpDispatcher();

http.createServer((request, response) => {
    return request
    .on('error', (err) => { 
      console.error(err);
    })
    .on('data', (data) => { 
        //data exists
    }).
    on('end',()=>{
      dispatcher.dispatch(request, response);
    });
  }).listen(3030);

  dispatcher.onGet("/", function(request, response) {
    response.statusCode = 200; 
    response.writeHead(200, {'Content-Type':'text/html'});
    response.write('<html>'); 
    response.write('<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="crossorigin="anonymous"></script>');
    response.write('<script>function sendToServer(){$.ajax("/route").done(function(data){alert( data );});}</script>');
    response.write('<h1> List</h1>'); 
    response.write('<button onclick="sendToServer()">submit</button>');
    response.write('</html>');
    response.end();
  });

  dispatcher.onGet("/route", function(request, response) {
    response.end("Server responding!!!"); //call your any serverside function here
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...