你好 我们不是一个好消息:我们在移动版本中犯了一个错误,这可能会打扰您整个假期。

问题的本质:一个人向帖子发送评论,用他的登录名看到该评论并离开页面,但是如果刷新页面,则该评论已经使用了不同的用户名。 仅当用户同时在一个帖子的页面上时,此方法才有效。
根据我们的数据,在周末,移动版本发送了774条评论。 他们每个人都可能受苦。
一些技术细节我们使用一堆VueJS + NodeJS(Express,SSR)。
NodeJS异步地在单个流中提供多个连接,即,它为所有客户端使用一个实例。 这意味着全局变量仅初始化一次,并且只要实例处于活动状态就可以存在。
因此,您必须非常注意Middlewar'ov的执行顺序,以及变量值的定义和重新定义(尤其是在它们为全局值的情况下)。
这就是我们发生的事情(这是一个代码示例):
global.foo = 'bar'; app.get('/main', (req, res, next) => { res.send(global.foo); }); app.get('/change', (req, res, next) => { global.foo = global.foo === 'bar' ? 'barbar': 'bar'; res.send(global.foo); });
服务器将返回什么?
- 客户1在
/main
>>>'bar' - 客户端2位于
/change
>>>'barbar' - 客户端1再次位于
/main
>>>'barbar'
当然,该示例已大大简化,但原理是相同的。
现在一切正常。 不便之处,敬请原谅。如果您受到此问题的影响,请通过反馈表与我们联系。
我们正在寻找机会将评论返回给他们的合法所有者,我们将在以后告诉您。