【发布时间】:2019-08-27 16:07:50
【问题描述】:
我正在尝试在 heroku 上部署我的工作,在解决了一些错误之后,一个错误没有得到修复,我尝试了很多方法,但都失败了
已添加:useNewUrlParser: true,useCreateIndex: true, app.use(express.urlencoded({extended: false}))
const express = require('express');
const passport = require('passport')
const cors = require('cors');
const app = express();
const hostname='localhost';
var port= process.env.PORT || 8080;
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const route=require('./routes/api/Routes');
// DB Config
const db = require('./config/keys').mongoURI
// Connect to mongo
mongoose
.connect(db,{ useNewUrlParser: true,useCreateIndex: true, })
.then(() => console.log('Connected to MongoDB'))
.catch(err => console.log(err))
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.json())
app.use(express.urlencoded({extended: false}))
app.use(cors())
app.get('/test', (req,res) => res.send(`<h1>Deployed on Heroku</h1>`))
git bash 中的错误是
State changed from starting to crashed
/app/node_modules/mongoose/lib/connection.js:434
throw new MongooseError('The `uri` parameter to `openUri()` must be a '
+
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.
在https://teamse7.herokuapp.com/test 上显示应用程序错误
【问题讨论】:
-
require('./config/keys').mongoURI 的返回值是什么?
-
@FrV if(process.env.NODE_ENV === 'production') module.exports = require('./keys_prod') else module.exports = require('./keys_dev')
-
module.exports = { mongoURI: process.env.MONGO_URI, } @FrV 这是keys_prod
-
module.exports = { mongoURI: 'mongodb+srv://******:*******@******.mongodb.net/test? retryWrites=true', } @Frv 这是keys_dev
-
好的,试试console.log(db),如果不是字符串,就是失败的原因
标签: javascript node.js express heroku mongoose