正如标题所述,在该系统上部署系统后,我一直无法获取/,因此,当我输入heroku日志时,出现以下两个错误: 首先
(node:23) UnhandledPromiseRejectionWarning: MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
甚至我都固定了开发服务器和生产服务器的参数变量,以便使用猫鼬进行连接,我在代码中包含process.env.MONGODB,并且在开发服务器上可以正常工作。
第二个错误是
(node:23) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
并且它没有对特定代码,行或文件的引用来知道错误的确切位置
这些是我对系统的依赖关系
{
"name": "task-manager",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node src/app.js",
"dev": "env-cmd -f ./config/dev.env nodemon src/app.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@sendgrid/mail": "^7.3.0",
"bcryptjs": "^2.4.3",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"mongodb": "^3.6.2",
"mongoose": "^5.10.9",
"multer": "^1.4.2",
"sharp": "^0.26.2",
"validator": "^13.1.17"
},
"devDependencies": {
"env-cmd": "^10.1.0",
"nodemon": "^2.0.5"
}
}
答案 0 :(得分:0)
作为参考,以防万一将来有人遇到相同的问题,我已经找到了答案,我在那里有2个问题。
首先,我的IP地址是MongoDB集群上唯一列入白名单的IP,因此我对其进行了编辑以使其成为所有IP,因为heroku使用的IP地址将与我的IP地址不同,我将其IP地址设为0.0.0.0/0来将所有白名单列入白名单。叶氏。
第二个问题是超时,因为路由中有2个await函数,中间有另一个函数,并且正在向用户发送电子邮件,因此我在第二个await之后移动了该函数,因此服务器不响应并超时,因为显然使用这3个功能会导致超时,特别是正如我在Heroku文档中阅读的那样,发送电子邮件的时间很长。