我完全被我今天在我的应用中注意到的东西感到难过。
我有一个用nginx运行的node.js编写的应用程序,后端有mongodb。我有一个'authenticateUser'cal,它接受用户名和密码。然后它查询mongodb以检索用户文档并检查密码是否匹配。
我们编写了一个脚本,它基本上在循环中调用'authenticateUser'100次。它工作正常。没有错误。现在我们从2个终端运行相同的脚本,一个用于用户账单,另一个用于用户山姆。我们开始看到两个终端都出现故障。我会说大约10%的请求因密码错误无效而失败。
当我们检查日志文件时,我们完全惊讶地看到bill的用户名与sam的密码混淆了。我们不知道最近发生了什么?我们必须做一些明显错误的事情。它是什么? 2个请求是否完全相互隔离?
非常感谢任何帮助。
非常感谢! SU
答案 0 :(得分:6)
您经常使用全局变量吗?缺少var
是造成此类错误的常见原因。
是的,我想看一个源代码......