【发布时间】:2019-09-04 07:32:36
【问题描述】:
我在将 Node.JS 应用程序部署到 Heroku 时遇到问题,我知道是数据库导致了问题,但无法找出原因。我被引导相信我需要使用 Mlab 而不是 MongoDB Atlas,所以我现在都尝试了,但都没有工作。当我部署并访问 url 时出现错误。以下是日志:
2019-04-13T21:42:47.139176+00:00 app[web.1]: operationTime:
2019-04-13T21:42:47.139180+00:00 app[web.1]: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1555191760 },
2019-04-13T21:42:47.139181+00:00 app[web.1]: '$clusterTime':
2019-04-13T21:42:47.139182+00:00 app[web.1]: { clusterTime:
2019-04-13T21:42:47.139183+00:00 app[web.1]: Timestamp { _bsontype: 'Timestamp', low_: 2, high_: 1555191760 },
2019-04-13T21:42:47.139184+00:00 app[web.1]: signature: { hash: [Binary], keyId: [Long] } },
2019-04-13T21:42:47.139185+00:00 app[web.1]: name: 'MongoError',
2019-04-13T21:42:47.139187+00:00 app[web.1]: [Symbol(mongoErrorContextSymbol)]: {} }
2019-04-13T21:42:47.880138+00:00 heroku[web.1]: State changed from starting to up
2019-04-13T21:43:19.726698+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=my-personal-blog16.herokuapp.com request_id=fa43cfdb-4704-4b0d-8de0-5d65604dd98f fwd="92.233.88.145" dyno=web.1 connect=1ms service=30000ms status=503 bytes=0 protocol=https
这是我连接数据库的 URI:
require('dotenv').config();
const dbpass = process.env.DB_PASS;
const mlabpass = process.env.MLAB_PASS;
module.exports = {
MongoURI:
`mongodb://fishj123:${mlabpass}@ds149885.mlab.com:49885/heroku_26921dvn`,
};
链接到我的 git 仓库:https://github.com/fishj123/personal-blog
非常感谢任何帮助。
【问题讨论】:
-
您是否将选项 { useNewUrlParser: true } 传递到您的猫鼬连接中?检查此链接:github.com/Automattic/mongoose/issues/6664 或者您的密码可能包含特殊字符,例如 @ ?
标签: javascript node.js mongodb heroku mlab