我正在使用node.js设置我的第一台服务器,但是我不知道如何连接客户端和该服务器。我不想使用jquery,关于此我可以找到的所有问题都涉及jquery或关于不同的语言。有谁知道该怎么做?
编辑:我在服务器和客户端之间建立了连接,但是响应中没有任何内容。服务器的代码为here,客户端的代码为here(在“多人游戏”文件夹中)。
答案 0 :(得分:1)
执行类似的操作,以设置在端口8080上侦听的Node.js HTTP服务器。
客户端将使用AJAX发送GET请求。
index.html
<html>
<head>
<script>
var xhttp = new XMLHttpRequest();
// Create a function callback, called every time readyState changes
xhttp.onreadystatechange = function()
{
// When the response has been received with status 200
// Update the element div#response-holder
if (this.readyState == 4 && this.status == 200)
{
var txtDisplay = elem document.getElementById("response-holder")
txtDisplay.innerHTML = this.responseText;
}
};
// Send a GET request to /api, asynchronously
xhttp.open("GET", "/api", true);
xhttp.send();
<script>
</head>
<body>
<div id="response-holder"></div>
</body>
</html>"
server.js
// Load the http and fs (filesystem) modules
var app = require("http");
var fs = require("fs");
// Serve the "/index.html" home page on port 8080
app.createServer(function (req, resp)
{
fs.readFile("index.html", function(err, data)
{
resp.writeHead(200, {'Content-Type': 'text/html'});
resp.write(data);
resp.end();
}
);
}
).listen(8080);
// Also answer to GET requests on "/api"
app.get('/api', function(req, resp)
{
var responseStr = "Hello World!";
resp.status(200);
resp.setHeader('Content-type', 'text/plain');
return resp.send(responseStr);
}
);
这是有关AJAX的W3Schools教程: https://www.w3schools.com/js/js_ajax_intro.asp
答案 1 :(得分:0)
您可以使用 Fetch API 使用香草JavaScript来做到这一点。
假设Node将为您提供一些URL,您可以通过获取它们来获取,发布等。
有关其工作原理的更多信息: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API
答案 2 :(得分:-2)
客户端和节点服务器之间的TCP连接将是可选的。这是一个示例代码片段:
var ser = require('ser');
var clientSer = new net.Socket();
clientSer.connect(1220, '127.0.0.1', function() {
console.log('Connected');
client.write('Hello, Connection Established!');
});
clientSer.on('data', function(data) {
console.log('Received: ' + data);
client.destroy(); // kill client after server's response
});
clientSer.on('close', function() {
console.log('Connection closed');
});