我在下面的堆栈中创建了一个刽子手游戏 用于前端的bootstrap,jQuery和JavaScript Express和Node.js用于后端。
以下是示例代码:
var deepSearch = function(value) {
this.value = value;
this.children = [];
};
deepSearch.prototype.addChild = function(value){
var child = new deepSearch(value);
this.children.push(child);
return child;
};
deepSearch.prototype.map = function(val, cb){
if(this.value === val){
cb(this.value);
}
if(this.children){
for(var i = 0; i < this.children.length; i++){
if(this.children[i].contains(val)){
cb(this.value);
}
}
}
return false;
};
我正在使用jQuery AJAX请求与节点服务器进行通信
const express = require('express');
app.listen(3000, function(){
console.log("Start playing the game on port 3000");
});
该请求在express的app.post方法中被捕获
$.post("/guess/", data, function(data, status){
//do something with data
});
游戏按预期运行,仅在代码中没有问题
问题是,每当我在两个标签或浏览器中打开app.post('/guess/', function(req, res){
//do something
});
并在两个标签或游戏中玩游戏时,游戏似乎都会被打破。 http://localhost:3000
的两个游戏似乎都在使用相同的服务器变量和实例。
例如,如果我在浏览器1和2中玩游戏并且我在浏览器1中猜到了字母'a'(错误的猜测),那么结果反映在浏览器1中,就会绘制出刽子手的基础。
之后如果我去浏览器2并单击字母'b'(再次猜错了),结果应该是hangman的基础,但是hangman的下一部分是绘制而不是base。 localhost
的两个实例正在更新记录错误猜测的计数变量
如何通过上述设置了解如何支持Web应用程序的多个实例?