为什么程序混合使用PostgreSQL local,ngrok和NodeJS时连接的所有用户的代码?
问题描述:
我的代码存在严重问题。我正在使用Node.JS和ExpressJS为Telegram开发一个bot。为了提出请求,我使用ngrok并存储PostgreSQL的信息。我的问题是:当只有一个用户连接并且与机器人和处理操作交谈时运行程序时,代码运行得非常好。但是,当多个用户同时连接时,该程序将为所有用户混合使用该代码。例如:为什么程序混合使用PostgreSQL local,ngrok和NodeJS时连接的所有用户的代码?
如果第一用户激活用于特定选择,或者如果机器人正在处理该用户的SQL查询,并示出了结果的布尔变量,第二和第三用户受到影响,为什么?
我想,也许PostgreSQL的不允许多个事务与数据库在本地机器上运行,或者也许它的代码有问题。
我该如何解决这个问题?
答
这听起来像你正在使用可变的服务器端。既然你没有提供代码,我将提供一个例子来说明我认为问题是什么。
假设您有一个名为basket
的变量,它将所有项目存储在用户购物篮中。当用户A在他们的篮子中放入东西时更新该变量,但当用户B在篮子中放入东西时更新相同的变量。
相反,你需要创建一个用户对象是这样的:
let users = {
"5": {
userid: 5,
basket: ['apple', 'banana']
},
"7": {
userid: 7,
basket: ['orange', 'apple']
}
}
当您对您通过ID和请求中的新项目(POST体通常)后端的请求,并得到正确的用户如下:
let user = users[param.userid]
user.basket.push(item)
然后每个用户都会单独更新。
[见我如何问一个很好的问题?(https://stackoverflow.com/help/how-to-ask) - 你会得到一个更好的反应,如果你可以制定一个清晰,简洁,问题包括相关的代码。 – Fraser