【发布时间】:2017-01-05 16:38:47
【问题描述】:
背景:
我有一个 node.js + Express + MySQL 应用程序。对于开发和测试,我在我的本地主机上运行它,我还将它部署在生产端的 heroku 上。
问题:
每当我在本地主机上运行应用程序时,只要我在登录表单中点击登录按钮,它就会崩溃。具体来说,它给出了以下错误:
TypeError: 无法调用未定义的“查询”方法
这个问题与我用来连接数据库的mysql节点模块有关,代码如下:
connectionPool.getConnection(function(err, connection){
if(err) {
winston.log('debug', '------------------------------------ Error: ' + err);
callback(err, null);
}
connection.query(queryString, function(err, rows){
if (err) {
winston.log('debug', '------------------------------------ Error: ' + err);
callback(err, null);
}
connection.release();
callback(null, rows);
});
});
显然,连接参数未定义,因此出现错误。
但在我们得出问题是我的代码问题的结论之前,应用程序有时也可以顺利运行。它在 Heroku prod 网站上运行顺畅,猜猜如果我将我的 wifi 连接从我的家庭 wifi 更改为我的便携式 wifi 热点它永远不会崩溃。
因此,如果我在家庭 wifi 上运行我的服务器 10 次,它将失败 8 次并顺利运行 2 次。所以每次我必须在这个项目上工作时,我都必须将我的笔记本电脑重新连接到我的便携式 wifi 热点(这非常昂贵)。
我尝试将代码中的端口从 8000 更改为 3434 或 5000,但没有帮助。我真的很沮丧,因为由于我的家庭连接,我什至无法在 locahost 上测试我的应用程序。我有 4 mbps 的下载速度,对于这样的应用程序来说应该足够了。 YouTube、Facebook 等其他网站也可以正常加载(更不用说当我在 heroku 上运行同一个应用程序时)。
这个问题有什么解决办法吗?是我的代码无法连接吗?
谢谢。
【问题讨论】: