这是我在MacOsx本地构建的nodejs / express 4应用程序的上下文。
它是一个简单的应用程序,主要使用postgresql(以原生形式)来呈现页面。
当我浏览我的页面时,登录,注销.....应用程序随机挂起:浏览器保持加载空白页面。控制台上没有输出错误。当一条路线挂起时,我再也无法访问它了,但是我可以访问其他路线。 它完全随机的事实使得很难找到问题的根源。
是否有一种残酷的方法可以找到导致问题的原因?我至少能找到一种读错误的方法。
更新1:
这是我的app.js条目文件:
import * as express from "express"
import * as exphbs from "express-handlebars"
import directory from "./source/apps/directory/directory_controller"
import users from "./source/apps/users/users_controller"
import * as session from "express-session"
// Non require variables
let app = express()
let port = process.env.PORT || 3002
import * as forms from "formidable"
app.use( session( { secret: 'keyboard cat' }))
app.use(function(req, res, next){
res.locals.session = req.session
next()
})
function logErrors(err, req, res, next) {
console.error("middleware", err.stack )
console.log("middleware", err)
next(err)
}
app.use(logErrors)
/** Routes */
app.use( "/directory", directory )
app.use( "/users", users )
/** Views */
app.set( "views", __dirname + "/source/" )
app.engine( 'handlebars', exphbs( {
defaultLayout: __dirname + "/source/views/layouts/main",
partialsDir: "./source/apps/directory/views/partials/"
}) )
app.set( "view engine", "handlebars" )
// app.use(express.static(__dirname + '/public'));
app.listen( port, function () {
console.log( "Server is listening on port:" + port )
})
答案 0 :(得分:1)
确实,这是一个违规的客户端实例问题。
1)我使用客户端实例更改为客户端池。 似乎用我以前的代码,每次我加载一个页面,它会创建一个新的数据库实例并耗尽默认值10;解释为什么它无法加载第11页。
2)我确保用done()关闭我的连接; (非常重要)作为文档中的示例:https://github.com/brianc/node-postgres
我很惊讶我没有收到任何关于此的错误消息。我可以花上几个小时。