我有一个非常奇怪的问题。
我正在将 NodeJS 与 ExpressJS 一起使用。我还启用了“护照”模块来验证用户。
我有以下路线
app.get("/home", ensureLoggedIn("/login"), (req, res) ->
res.render "home",
title:"Home"
)
用户第一次登录后工作正常。
现在,当我在“localhost:3000/home”中并刷新时,似乎并未加载所有 CSS 和 JS 文件,所以我的 Chrome 只是一直在“加载”(旋转图像)。
当我查看控制台时,我打印出以下日志
GET /home 200 14ms - 1.32kb <-- first time page being loaded...
GET /css/main.css 304 19ms
GET /js/libs/handlebars.min.js 304 12ms
GET /js/libs/underscore-min.js 304 19ms
GET /js/libs/jquery-ui-1.10.2.custom.min.js 304 21ms
GET /js/libs/jquery-migrate-1.1.1.min.js 304 26ms
GET /js/libs/backbone-min.js 304 19ms
GET /js/libs/jquery-1.9.1.min.js 304 31ms
GET /home 304 18ms <-- second time page being loaded
GET /js/libs/underscore-min.js 304 14ms
GET /js/libs/jquery-ui-1.10.2.custom.min.js 304 16ms
GET /js/libs/jquery-1.9.1.min.js 304 15ms
GET /js/libs/jquery-migrate-1.1.1.min.js 304 15ms
起初它似乎是一个特定的 JS 文件,所以我取出了“jquery-migrate-1.1.1.min.js”文件,但它再次发生在我试图加载的另一个 JS 文件上。
我认为这与“护照”模块有关,所以我将“ensureLoggedIn”代码取出,但它仍在发生。
有任何想法吗?
更新
一旦浏览器“挂起”并且没有加载任何内容,我就无处可去。我在浏览器中输入任何 URL 以获取任何资产(例如 CSS 文件、JS 文件、图像)或路径,它只是不断加载,控制台日志中没有任何内容。
更新2
这越来越奇怪了。所以这就是我所做的。当我去一个路线
app.get("/home", (req, res) ->
res.render "home",
title:"Home"
)
使用我的(非常简单的)home.jade 文件
!!! 5
html(lang='en')
head
body
一切正常。我可以多次刷新页面,没有问题。
然后我启用“护照”模块并转到
app.get("/home", ensureLoggedIn("/login"), (req, res) ->
res.render "home",
title:"Home"
)
我可以成功登录,并且我的“home”(home.jade)文件正确显示。这是踢球者。我准确刷新了 16 次,然后在第 17 次,页面挂起。
我停止我的 NodeJS 服务器并重新启动,并且完全相同,最多刷新 16 次,并在 17 日停止。
我觉得护照模块中有某种“请求”限制?或者我可能会发疯。
解决
我发现了我的问题 - 一个新手错误 - 我使用 Postgres 作为我的数据库,对于每个查询,我没有正确“关闭”连接。所以每次我刷新时,它都会打开一个与数据库的新连接 - 傻,傻。