部署系统后,我在heroku上一直无法获取/

时间:2020-11-02 18:09:50

标签: node.js heroku npm deployment

正如标题所述,在该系统上部署系统后,我一直无法获取/,因此,当我输入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"
 }

}

1 个答案:

答案 0 :(得分:0)

作为参考,以防万一将来有人遇到相同的问题,我已经找到了答案,我在那里有2个问题。

首先,我的IP地址是MongoDB集群上唯一列入白名单的IP,因此我对其进行了编辑以使其成为所有IP,因为heroku使用的IP地址将与我的IP地址不同,我将其IP地址设为0.0.0.0/0来将所有白名单列入白名单。叶氏。

第二个问题是超时,因为路由中有2个await函数,中间有另一个函数,并且正在向用户发送电子邮件,因此我在第二个await之后移动了该函数,因此服务器不响应并超时,因为显然使用这3个功能会导致超时,特别是正如我在Heroku文档中阅读的那样,发送电子邮件的时间很长。