1

我完全被我今天在我的应用程序中注意到的内容难住了。

我有一个用 Node.js 编写的应用程序,在 nginx 上运行,后端有 MongoDB。我有一个'authenticateUser' cal,它接受用户名和密码。然后它查询 MongoDB 以检索用户文档并检查密码是否匹配。

我们编写了一个脚本,它基本上循环调用 'authenticateUser' 100 次。它工作得很好。没有错误。现在我们从 2 个终端运行相同的脚本,一个用于用户 bill,另一个用于用户 sam。我们开始在两个终端上看到故障。我想说大约 10% 的请求因密码无效错误而失败。

当我们检查日志文件时,我们完全惊讶地发现 bill 的用户名与 sam 的密码混淆了。我们不知道发生了什么。我们一定是在做一些明显错误的事情。它是什么?这两个请求不是完全相互隔离的吗?

4

1 回答 1

7

你经常使用全局变量吗?缺失var是此类错误的常见原因。

是的,我想看看源代码......

于 2012-05-09T02:50:45.603 回答