Я пытаюсь развернуть приложение node для рендеринга, но продолжаю получать это сообщение об ошибке: MongooseError: Параметр uri
для openUri()
должен быть строкой, получившей значение «undefined». Убедитесь, что первым параметром mongoose.connect()
или mongoose.createConnection()
является строка.
После некоторого поиска здесь и попыток разных вещей я все еще получаю тот же результат, и я действительно не знаю, почему. Мое соединение работает локально, но когда я пытаюсь развернуть его, оно терпит неудачу.
const express = require('express');
const mongoose = require('mongoose');
require('dotenv').config({path:__dirname+'/.env'});
const cors = require('cors')
const quizRoutes = require('./router/quiz');
const articleRoutes = require('./router/article');
const app = express();
//middleware
app.use(express.json());
app.use(cors());
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.use('/quiz', quizRoutes);
app.use('/articles', articleRoutes);
mongoose.connect(process.env.MONGO_URI)
.then(() => {
app.listen(process.env.PORT, () => {
console.info(process.env)
console.info('Port', process.env.PORT);
})
})
.catch((error) => {
console.info(error);
})
PORT=4000
MONGO_URI = "mongodb+srv://personalinfo.lahdouv.mongodb.net/?retryWrites=true&w=majority"
Изменен Mongo_URI по понятным причинам, но это код, с которым я работаю.
Я попытался изменить конфигурацию .env, поместив URI в кавычки и пытаясь убедиться, что файл .env правильно связан. Локально я использовал console.info, чтобы убедиться, что он все еще работает. Не знаю, куда идти отсюда.
Любая помощь очень ценится и большое спасибо за ваше время.
Он находится в .env, который находится в корневой папке проекта. Я пытался добавить изображение, но говорит, что пока не могу.
Вы можете загрузить на imgur
, если это возможно. Итак, файл .env существует на сервере? Где вы развернули приложение?
Я развернул его на Render. Я только что дважды проверил, чтобы убедиться, что файл env был там, но я не думаю, что это было. Просто добавил его и изменил переменную среды, и это заставило его работать! Спасибо!
Вместо использования файла env вы можете попробовать это. В рендере есть расширенная опция для добавления переменной среды до того, как приложения начнут развертываться. выберите расширенный параметр, и вы увидите возможность добавить переменную среды. добавить переменную сохранить и развернуть
Только что попробовал это вместе с двойной проверкой сервера, и это помогло! Большое спасибо!
Где вы сохраняете
mongo_uri
, в.env
или.env.production
?