#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. хорошо, отличная бесплатная возможность задавать сомнения и получать удовольствие от обучения