如何简单地在服务器端Node js中创建onClick事件?



我只是想测试一下。

例如,这里是节点 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. 您需要在服务器端为侦听客户端请求实现 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
});

最新更新