Не удается подключиться к MongoDB с помощью Nodejs

#node.js #mongodb

#node.js #mongodb

Вопрос:

Я использую Node js, чтобы попытаться подключиться к MongoDB. Вот соответствующие фрагменты кода:

 {
  "port": 3001,
  "appPort": 8080,
  "host": "localhost:3001",
  "protocol": "http",
  "allowedOrigins": ["*"],
  "domain": "http://localhost:3001",
  "basePath": "",
  "mongo": "mongodb://100.10.10.10:27017/database",
  "mongoConfig": "",
  "mongoCA": "",
  "mongoSecret": "--- change me now ---"
}
 
 MongoClient.connect(dbUrl, {useUnifiedTopology: true}, function(err, client) {
      if (err) {
        console.log(err);
        debug.db(`Connection Error: ${err}`);
        unlock(function() {
          throw new Error(`Could not connect to the given Database for server updates: ${dbUrl}.`);
        });
      }
      db = client.db(client.s.options.dbName);

      debug.db('Connection successful');
}
 

Когда я использую ‘npm start’ для запуска сервера, я получил эту ошибку:

 MongoServerSelectionError: connect EACCES 100.10.10.10:27017
    at Timeout._onTimeout (formionode_modulesmongodblibcoresdamtopology.js:438:30)
    at listOnTimeout (internal/timers.js:549:17)
    at processTimers (internal/timers.js:492:7) {
  reason: TopologyDescription {
    type: 'Unknown',
    setName: null,
    maxSetVersion: null,
    maxElectionId: null,
    servers: Map { '100.10.10.10:27017' => [ServerDescription] },
    stale: false,
    compatible: true,
    compatibilityError: null,
    logicalSessionTimeoutMinutes: null,
    heartbeatFrequencyMS: 10000,
    localThresholdMS: 15,
    commonWireVersion: null
  }
}
 

Я пытался включить / отключить брандмауэр, но результаты по-прежнему не меняются. Не могли бы вы помочь мне это исправить?
Спасибо
Дополнительная информация о репозитории:
https://github.com/formio/formio

Ответ №1:

https://github.com/Jobin-S/shopping-cart/blob/master/config/connection.js

пожалуйста, посмотрите этот репозиторий, вы можете увидеть пример. Создайте конфигурационный файл и запросите его в app.js

 const mongoClient = require('mongodb').MongoClient

const state ={
    db:null
}

module.exports.connect = (done) => {
    const url = 'mongodb://localhost:27017';
    const dbName = 'shopping';

    mongoClient.connect(url,{ useUnifiedTopology: true }, (err, data) => {
        if(err) return done(err)
        state.db = data.db(dbName)
        done()
    })
}

module.exports.get = function(){
    return state.db
}
 

после создания этого конфигурационного файла.
требуется файл конфигурации и требуется в app.js файл и напишите приведенный ниже код

 var db = require('./config/connection')
db.connect((err)=>{
  if(!err) console.log("Database connected successfully");
  else console.log(`Connection Error: ${err}`);
})
 

после этого вы можете использовать базу данных в любом файле.

 const db = require('../config/connection')
addProduct: (product) => {
        return new Promise((resolve, reject) => {
            product.Price = parseInt(product.Price)
            db.get().collection(collection_name).insertOne(product).then((data) => {
            resolve(data.ops[0]._id)
            })
        })
    }
 

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

1. Спасибо. Я попробую

2. хорошо, отличная бесплатная возможность задавать сомнения и получать удовольствие от обучения