Mongoose подключается к localhost вместо моего подключения

#node.js #mongodb #mongoose #mongodb-atlas

#node.js #mongodb #mongoose #mongodb-atlas

Вопрос:

Я перехожу с localhost на использование mongodb-atlas для размещения моей базы данных. Я изменил строку подключения в своем приложении nodejs, но каждый раз, когда приложение должно создавать новый документ на сервере atlas, оно все еще создает его на localhost.

Я убедился, что новая строка подключения была везде. Я также попытался создать нового пользователя.

Код функции

 const mongoose = require("mongoose");
const Report = require("../models/report.js")
const { mongoURL } = require('../config.json');
mongoose.connect(mongoURL, {useNewUrlParser: true});


module.exports = {
    name: 'testreport',
    description: 'test  report',
    args: true,
    usage: '<user> <reason>',
    async execute(message, args) {
        let rUser = message.mentions.members.first();
        let rreason = args;
        const report = new Report({
            _id: mongoose.Types.ObjectId(),
            username: rUser.user.username,
            userID: rUser.id,
            reason: rreason,
            rUsername: message.author.username,
            rID: message.author.id,
            time: message.createdAt
        })

        report.save()
        .then(result => console.log(result))
        .catch(err => console.log(err));

        message.reply("that report has been saved!");
    },
};
  

Код схемы

 const mongoose = require("mongoose");
const { mongoURL } = require('../config.json');
mongoose.connect(mongoURL, {useNewUrlParser: true});
const reportSchema = mongoose.Schema({
    _id: mongoose.Schema.Types.ObjectId,
    username: String,
    userID: String,
    reason: String,
    rUsername: String,
    rID: String,
    time: String

}, { collection: 'Reports' })

module.exports = mongoose.model("Report", reportSchema);
  

Строка подключения:

«mongodb srv://user:pass@discordbot-rpuzu.mongodb.net/test ?Повторная запись = true»

Я ожидаю, что моя база данных atlas получит новый документ отчета, но он создается в моей базе данных localhost.

Редактировать: у меня получилось, но каждый раз, когда я запускаю приложение, я получаю

 UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [localhost:27017] on first connect
  

Я не понимаю, почему принудительный запуск localhost устранил проблему и почему я все еще получаю предупреждение о том, что localhost не запущен.

Комментарии:

1. Что console.log(mongoURL) показывает?

2. Он отображает правильный URL, который извлекается из конфигурации.

3. Ну, если он сохраняется в localhost db, у вас, очевидно, где-то неправильная строка подключения.

4. Вы остановили сервер и перезапустили его после обновления URI?

5.Вы два mongoUrl импортировали. глядя на этот импорт const Report = require("../models/report.js") , кажется, что ваши файлы находятся в разных папках, но ваш mongoUrl импорт одинаков const { mongoURL } = require('../config.json'); Вы уверены, что импортируете то же самое config.json ?