为什么程序混合使用PostgreSQL local,ngrok和NodeJS时连接的所有用户的代码?

问题描述:

我的代码存在严重问题。我正在使用Node.JS和ExpressJS为Telegram开发一个bot。为了提出请求,我使用ngrok并存储PostgreSQL的信息。我的问题是:当只有一个用户连接并且与机器人和处理操作交谈时运行程序时,代码运行得非常好。但是,当多个用户同时连接时,该程序将为所有用户混合使用该代码。例如:为什么程序混合使用PostgreSQL local,ngrok和NodeJS时连接的所有用户的代码?

如果第一用户激活用于特定选择,或者如果机器人正在处理该用户的SQL查询,并示出了结果的布尔变量,第二和第三用户受到影响,为什么?

我想,也许PostgreSQL的不允许多个事务与数据库在本地机器上运行,或者也许它的代码有问题。

我该如何解决这个问题?

+0

[见我如何问一个很好的问题?(https://*.com/help/how-to-ask) - 你会得到一个更好的反应,如果你可以制定一个清晰,简洁,问题包括相关的代码。 – Fraser

这听起来像你正在使用可变的服务器端。既然你没有提供代码,我将提供一个例子来说明我认为问题是什么。

假设您有一个名为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) 

然后每个用户都会单独更新。