json - Heroku 构建不与数据库通信
问题描述
我的 Heroku 构建不会与我在 mongodb 上的数据库通信。我已经尝试在 localhost 5000 上运行它并且它可以工作,但当我推送到 heroku 时它就无法工作。我的 server.js 是这样设置的:
const express = require('express') const cors = require('cors') const mongoose = require('mongoose') require('dotenv').config(); const app = express(); const port = process.env.PORT || 5000; app.use(cors()); app.use(express.json()); app.use(express.static('client/build')); const uri = process.env.ATLAS_URI mongoose.connect(uri, {useNewUrlParser: true, useCreateIndex: true}) const connection = mongoose.connection; connection.once('open', () => { console.log('mongoDB database connection established successfully') }) const exerciseRouter = require('./routes/exercises') const usersRouter = require('./routes/users'); app.use('/exercises', exerciseRouter) app.use('/users', usersRouter); app.listen(port, () => { console.log(`server is running on port: ${port}`) })
我在 console.log 时收到的错误消息是:
xhr.js:184 POST https://fitnesspush.herokuapp.com/%20users/add 404 (Not Found) (匿名) @ xhr.js:184 e.exports @ xhr.js:13 e.exports @ dispatchRequest.js :50 Promise.then (async) l.request @ Axios.js:61 r.forEach.l。@Axios.js:86 (匿名) @bind.js:9 值 @create-user.component.js:29 u @react-dom.production.min.js:14 d @react-dom.production.min.js :14 (匿名) @ react-dom.production.min.js:14 v @ react-dom.production.min.js:15 @ react-dom.production.min.js:52 ot @ react-dom.production .min.js:51 ut @ react-dom.production.min.js:52 dt @ react-dom.production.min.js:56 I @ react-dom.production.min.js:287 W @ react-dom .production.min.js:19 Jt @ react-dom.production.min.js:70 Gt @ react-dom.production.min.js:69 t.unstable_runWithPriority @ scheduler.production.min.js:19
zo @ react-dom.production.min.js:122 A @ react-dom.production.min.js:287 Kt @ react-dom.production.min.js:68 createError.js:16 未捕获(承诺)错误:在 XMLHttpRequest.d.onreadystatechange (xhr.js:69) 的 e.exports (settle.js:17) 的 e.exports (createError.js:16) 的请求失败,状态码为 404 e.exports @ createError.js: 16 e.exports @ set.js:17 d.onreadystatechange @ xhr.js:69 Promise.then (async) value @ create-user.component.js:30 u @ react-dom.production.min.js:14 d @ react-dom.production.min.js:14 (匿名) @ react-dom.production.min.js:14 v @ react-dom.production.min.js:15 @react-dom.production.min。 js:52 ot@react-dom.production.min.js:51 ut@react-dom.production.min.js:52 dt@react-dom.production.min.js:56 我@react-dom.production。 min.js:287 W @ react-dom.production.min.js:19 Jt @ react-dom.production.min.js:70 Gt @ react-dom.production.min.js:69 t.unstable_runWithPriority @ scheduler.production.min.js:19 zo @ react-dom.production.min.js:122 A @ react-dom.production.min。 js:287 Kt@react-dom.production.min.js:68
我的客户端文件夹中的 package.json 如下所示:
{“版本”:“0.1.0”,“私有”:true,“依赖项”:{“@testing-library/jest-dom”:“^4.2.4”,“@testing-library/react”:“ ^9.5.0”、“@testing-library/user-event”:“^7.2.1”、“axios”:“^0.20.0”、“bootstrap”:“^4.5.2”、“dotenv”: “^8.2.0”、“react”:“^16.13.1”、“react-datepicker”:“^3.1.3”、“react-dom”:“^16.13.1”、“react-router-dom ": "^5.2.0", "react-scripts": "^3.4.3" }, "scripts": { "start": "react-scripts start", "build": "react-scripts build", “测试”:“反应脚本测试”,“弹出”:“反应脚本弹出“
},“eslintConfig”:{“扩展”:“反应应用程序”},“浏览器列表”:{“生产”:[>0.2%”,“没有死”,“不是op_mini全部”] ,“开发”:[“最后 1 个 chrome 版本”,“最后 1 个 Firefox 版本”,“最后 1 个 safari 版本”]},“代理”:“http://localhost:5000/”}//本地主机:5000/" }//本地主机:5000/" }
这是我根文件夹中的一个:
{ "name": "backend",
"main": "index.js",
"scripts": { "test": "echo "Error: no test specified" && exit 1", "build": "cd client && npm run build”、“install-client”:“cd client && npm install”、“heroku-postbuild”:“cd client && npm install && npm run build”、“start”:“node server.js”、“client ": "cd client && npm start", "dev": "concurrently -n 'server,client' -c 'red,green' "nodemon server.js" "npm run client"" }, "author": "" ,
“许可证”:“ISC”,
“依赖项”:{ "cors": "^2.8.5", "dotenv": "^8.2.0", "express": "^4.17.1", "mongoose": "^5.10.0" } }"version": “1.0.0”,
“描述”:“”,
解决方案
推荐阅读
- java - 自定义查询 Spring Data JPA 中的参数处理
- reveal.js - Xaringan 幻灯片中的背景视频
- java - 来自打印队列java的文件名
- javascript - 没有关于地图功能的信息?(不是地图)
- stackdriver - Stackdriver 日志记录作为分析的数据管道
- python - 素数函数
- c++ - 在 Windows 中使用 NetBeans 设置 SFML
- gradle - Android-studio 3.5.1 Gradle 错误:没有为属性 lottie-react-native 指定值
- java - 如何覆盖 gradle 控制台中的上一行 - 用于实现进度条
- ios - 如何在使用 Xcode 11 和 iOS 13 进行 UI 测试期间关闭 UIActivityViewController