【发布时间】:2022-01-10 16:17:41
【问题描述】:
我正在尝试将服务器端与 html 链接,但是每当我执行节点 server.js 并打开 html 时,都没有任何效果。我也尝试进入 http://localhost:3000/post 但我得到的唯一结果是无法获取/发布。
var playerPoint1 = 0;
var playerPoint2 = 0;
var computerPoint = 0;
var gameEnd = false;
var url = "http://localhost:3000/post";
$(document).ready(function() {
$("button").click(function() {
$("#container").load("playerNumber.txt");
});
});
function playerNumberSelection(n) {
if (n == 1) {
$("#container").load("singlePlayer.txt");
} else {
$("#container").load("multiPlayer.txt")
}
}
function multiPlayerGame() {
$("#container").load("multiPlayerGame.txt");
var firstName = document.getElementById("firstPlayerName").value;
var secondName = document.getElementById("secondPlayerName").value;
var playerOne;
var playerTwo;
var onePressed = false;
var twoPressed = false;
window.addEventListener('keydown', function(event) {
keyPressed = event.key;
if (!onePressed) {
if (keyPressed == 'a' || keyPressed == 's' || keyPressed == 'd') {
playerOne = keyPressed;
console.log(playerOne);
onePressed = true;
}
} else if (!twoPressed) {
if (keyPressed == 'j' || keyPressed == 'k' || keyPressed == 'l') {
playerTwo = keyPressed;
console.log(playerTwo);
twoPressed = true;
}
}
if (onePressed && twoPressed) {
console.log("yes")
if (playerOne == 'a' && playerTwo == 'j' || playerOne == 's' && playerTwo == 'k' || playerOne == 'd' && playerTwo == 'l') {
alert("TIE");
} else if (playerOne == 'a' && playerTwo == 'l' || playerOne == 's' && playerTwo == 'j' || playerOne == 'd' && playerTwo == 'k') {
alert(firstName + " WINS");
playerPoint1++;
$("#playerPoint1").html(playerPoint1);
} else {
alert(secondName + " WINS");
playerPoint2++;
$("#playerPoint2").html(playerPoint2);
}
onePressed = false;
twoPressed = false;
}
});
}
function singlePlayer(choice) {
$.post(
url + '?data=' + JSON.stringify({
'action': 'singlePlayer',
'player_Choice': choice,
}),
response
);
}
function response(data, status) {
var response = JSON.parse(data);
//if singlePlayer recieved
if (response['action'] == 'singlePlayer') {
computerPoint = response['computerPoint'];
playerPoint1 = response['playerPoint1'];
//display the result for each points
$("#playerPoint").html(playerPoint1);
$("#computerPoint").html(computer);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container">
<nav>
<img src="" id="logo" class="logo">
</nav>
<h1>WELCOME</h1>
<div class="buttonContainer">
<button>START</button>
</div>
<footer>
</footer>
</div>
服务器端js
var express = require('express');
var app = express();
var playerPoint1 = 0;
var playerPoint2 = 0;
var computer = 0;
var express = require('express');
var app = express();
app.post('/post', (req, res) => {
res.header("Access-Control-Allow-Origin", "*");
console.log("New express client");
console.log("Received: ");
console.log(JSON.parse(req.query['data']));
var z = JSON.parse(req.query['data']);
// check if the request action is singlePlayer
if (z['action']=='singlePlayer') {
var player_Choice = z['player_Choice'];
singlePlayer(player_Choice);
var jsontext = JSON.stringify({
'computerPoint': computer,
'playerPoint1': playerPoint1
});
console.log(jsontext);
console.log(codes);
} else {
res.send(JSON.stringify({ 'msg': 'error!!!' }));
}
}).listen(3000);
console.log("Server is running!");
function singlePlayer(player_Choice){
var comp = randomGenerator();
if(player_Choice==comp){
console.log("TIE");
}else if(player_Choice==1&&comp==2||player_Choice==2&&comp==3||player_Choice==3&&comp==1){
alert("LOSE");
computer++;
}else{
alert("WIN");
playerPoint1++;
}
}
function randomGenerator(){
return Math.floor(Math.random()*3 + 1);
}
游戏是剪刀石头布我只尝试了单人部分,因为我什至无法运行它。请帮忙
【问题讨论】:
-
请尝试将您的代码发送到minimal reproducible example
-
我相信你应该使用这个npmjs.com/package/cors 而不是 res.header("Access-Control-Allow-Origin", "*");
-
您在 jQuery AJAX 中遇到的错误是什么? (帖子)
-
multiPlayerGame.txt 中有什么?
-
考虑使用
body-parser。
标签: javascript html jquery node.js server