Не могу подключить mongodb к node-express, используя localhost ⇐ Javascript
-
Гость
Не могу подключить mongodb к node-express, используя localhost
когда я пытаюсь подключить mongodb к nodejs express с помощью метода post, где я только что добавил регистратор, который будет отображать базу данных сообщений, подключенную, если nodejs слушает mongo db, но я обнаружил, что, хотя метод post работает, Mongoclient не работает, поэтому регистратор не работает. Сначала я попробовал использовать (MongoClient.connect("mongodb://localhost:27017) это, но это привело к отображению (MongooseServerSelectionError: Connect ECONNREFUSED ::1:27017) в консоли, поэтому я заменил локальный хост на (MongoClient.connect('mongodb://127.0.0.1:27017'), теперь результат просто регистрирует консоль с входными данными формы, но приложение все равно не слушает mongodb, пожалуйста, помогите мне я совсем новичок
вот код
вар экспресс = требуется ('экспресс'); вар маршрутизатор = express.Router(); var MongoClient=require("mongodb").MongoClient /* ПОЛУЧИТЬ домашнюю страницу. */ router.get('/', function(req, res, next) { res.render('index', {title: 'Express' }); }); router.post('/',function(req,res,next){ console.log(req.body); следующий }) router.post("/submit",function(req,res) { console.log(req.body); MongoClient.connect('mongodb://127.0.0.1:27017',function(err,client){ если (ошибка) console.log('ошибка') еще console.log('база данных подключена'); client.db('bynode').collection("пользователи").insertOne(req.body) }) res.send("понял") }) модуль.экспорт = маршрутизатор;
пожалуйста, помогите мне, из-за этого я застрял в обучении ошибка
/ошибка/ F:\new space\node_modules\mongodb\lib\sdam\topology.js:278 const timeoutError = new error_1.MongoServerSelectionError(Тайм-аут выбора сервера истек после ${serverSelectionTimeoutMS} мс`, this.description) ;
^
MongoServerSelectionError: подключите ECONNREFUSED ::1:27017 в Timeout._onTimeout (F:\new space\node_modules\mongodb\lib\sdam\topology.js:278:38) в listOnTimeout (узел: внутренний/таймеры: 569:17) atprocess.processTimers(node:internal/timers:512:7) { причина: TopologyDescription { тип: «Неизвестно», серверы: Карта(1) { 'localhost:27017' => ServerDescription { адрес: 'localhost:27017', тип: «Неизвестно», хосты: [], пассивы: [], арбитры: [], теги: {}, минВиреверсион: 0, МаксВиреВерсион: 0, roundTripTime: -1, последнее время обновления: 24984871, последняя записьдата: 0, ошибка: MongoNetworkError: подключить ECONNREFUSED::1:27017 в ConnectionFailureError (F:\new space\node_modules\mongodb\lib\cmap\connect.js:379:20) в Сокете. (F:\new space\node_modules\mongodb\lib\cmap\connect.js:285:22) в Object.onceWrapper (узел: события: 629:26) в Socket.emit (узел: события: 514:28) в испускатьErrorNT (узел: внутренний/потоки/уничтожить: 151:8) в испускатьErrorCloseNT (узел: внутренний/потоки/уничтожить: 116:3) atprocess.processTicksAndRejections(node:internal/process/task_queues:82:21) { [Symbol(errorLabels)]: Set(1) { 'ResetPool' }, [причина]: Ошибка: подключить ECONNREFUSED ::1:27017 в TCPConnectWrap.afterConnect [как по завершении] (узел: сеть: 1495:16) { ошибка: -4078, код: 'ECONNREFUSED', системный вызов: «подключиться», адрес 1', порт: 27017 } }, топологическая версия: ноль, Имя набора: ноль, setVersion: ноль, идентификатор выборов: ноль, логическийSessionTimeoutMinutes: ноль, первичный: ноль, я: ноль, '$clusterTime': ноль } }, устаревший: ложный, совместимость: правда, частота сердцебиенияMS: 10000, локальный порог MS: 15, Имя набора: ноль, maxElectionId: ноль, макссетверсион: ноль, CommonWireVersion: 0, логическийSessionTimeoutMinutes: ноль }, код: неопределенный, [Символ(errorLabels)]: Set(0) {}, [причина]: MongoNetworkError: подключить ECONNREFUSED ::1:27017 в ConnectionFailureError (F:\new space\node_modules\mongodb\lib\cmap\connect.js:379:20) в Сокете. (F:\new space\node_modules\mongodb\lib\cmap\connect.js:285:22) в Object.onceWrapper (узел: события: 629:26) в Socket.emit (узел: события: 514:28) в испускатьErrorNT (узел: внутренний/потоки/уничтожить: 151:8) в испускатьErrorCloseNT (узел: внутренний/потоки/уничтожить: 116:3) atprocess.processTicksAndRejections(node:internal/process/task_queues:82:21) { [Symbol(errorLabels)]: Set(1) { 'ResetPool' }, [причина]: Ошибка: подключить ECONNREFUSED ::1:27017 в TCPConnectWrap.afterConnect [как по завершении] (узел: сеть: 1495:16) { ошибка: -4078, код: 'ECONNREFUSED', системный вызов: «подключиться», адрес 1', порт: 27017 } } }`
Я попытался изменить «MongoClient.connect(»mongodb://localhost:27017» на «MongoClient.connect('mongodb://127.0.0.1:27017», разница в том, что появляется сообщение об ошибке (MongooseServerSelectionError: Connect ECONNREFUSED ::1:27017) пропал, но узел по-прежнему не слушал mongodb, я ожидал, что регистратор отобразит, что «база данных подключена», а также входные данные формы будут сохранены в базе данных в bynode в этой коллекции пользователи
когда я пытаюсь подключить mongodb к nodejs express с помощью метода post, где я только что добавил регистратор, который будет отображать базу данных сообщений, подключенную, если nodejs слушает mongo db, но я обнаружил, что, хотя метод post работает, Mongoclient не работает, поэтому регистратор не работает. Сначала я попробовал использовать (MongoClient.connect("mongodb://localhost:27017) это, но это привело к отображению (MongooseServerSelectionError: Connect ECONNREFUSED ::1:27017) в консоли, поэтому я заменил локальный хост на (MongoClient.connect('mongodb://127.0.0.1:27017'), теперь результат просто регистрирует консоль с входными данными формы, но приложение все равно не слушает mongodb, пожалуйста, помогите мне я совсем новичок
вот код
вар экспресс = требуется ('экспресс'); вар маршрутизатор = express.Router(); var MongoClient=require("mongodb").MongoClient /* ПОЛУЧИТЬ домашнюю страницу. */ router.get('/', function(req, res, next) { res.render('index', {title: 'Express' }); }); router.post('/',function(req,res,next){ console.log(req.body); следующий }) router.post("/submit",function(req,res) { console.log(req.body); MongoClient.connect('mongodb://127.0.0.1:27017',function(err,client){ если (ошибка) console.log('ошибка') еще console.log('база данных подключена'); client.db('bynode').collection("пользователи").insertOne(req.body) }) res.send("понял") }) модуль.экспорт = маршрутизатор;
пожалуйста, помогите мне, из-за этого я застрял в обучении ошибка
/ошибка/ F:\new space\node_modules\mongodb\lib\sdam\topology.js:278 const timeoutError = new error_1.MongoServerSelectionError(Тайм-аут выбора сервера истек после ${serverSelectionTimeoutMS} мс`, this.description) ;
^
MongoServerSelectionError: подключите ECONNREFUSED ::1:27017 в Timeout._onTimeout (F:\new space\node_modules\mongodb\lib\sdam\topology.js:278:38) в listOnTimeout (узел: внутренний/таймеры: 569:17) atprocess.processTimers(node:internal/timers:512:7) { причина: TopologyDescription { тип: «Неизвестно», серверы: Карта(1) { 'localhost:27017' => ServerDescription { адрес: 'localhost:27017', тип: «Неизвестно», хосты: [], пассивы: [], арбитры: [], теги: {}, минВиреверсион: 0, МаксВиреВерсион: 0, roundTripTime: -1, последнее время обновления: 24984871, последняя записьдата: 0, ошибка: MongoNetworkError: подключить ECONNREFUSED::1:27017 в ConnectionFailureError (F:\new space\node_modules\mongodb\lib\cmap\connect.js:379:20) в Сокете. (F:\new space\node_modules\mongodb\lib\cmap\connect.js:285:22) в Object.onceWrapper (узел: события: 629:26) в Socket.emit (узел: события: 514:28) в испускатьErrorNT (узел: внутренний/потоки/уничтожить: 151:8) в испускатьErrorCloseNT (узел: внутренний/потоки/уничтожить: 116:3) atprocess.processTicksAndRejections(node:internal/process/task_queues:82:21) { [Symbol(errorLabels)]: Set(1) { 'ResetPool' }, [причина]: Ошибка: подключить ECONNREFUSED ::1:27017 в TCPConnectWrap.afterConnect [как по завершении] (узел: сеть: 1495:16) { ошибка: -4078, код: 'ECONNREFUSED', системный вызов: «подключиться», адрес 1', порт: 27017 } }, топологическая версия: ноль, Имя набора: ноль, setVersion: ноль, идентификатор выборов: ноль, логическийSessionTimeoutMinutes: ноль, первичный: ноль, я: ноль, '$clusterTime': ноль } }, устаревший: ложный, совместимость: правда, частота сердцебиенияMS: 10000, локальный порог MS: 15, Имя набора: ноль, maxElectionId: ноль, макссетверсион: ноль, CommonWireVersion: 0, логическийSessionTimeoutMinutes: ноль }, код: неопределенный, [Символ(errorLabels)]: Set(0) {}, [причина]: MongoNetworkError: подключить ECONNREFUSED ::1:27017 в ConnectionFailureError (F:\new space\node_modules\mongodb\lib\cmap\connect.js:379:20) в Сокете. (F:\new space\node_modules\mongodb\lib\cmap\connect.js:285:22) в Object.onceWrapper (узел: события: 629:26) в Socket.emit (узел: события: 514:28) в испускатьErrorNT (узел: внутренний/потоки/уничтожить: 151:8) в испускатьErrorCloseNT (узел: внутренний/потоки/уничтожить: 116:3) atprocess.processTicksAndRejections(node:internal/process/task_queues:82:21) { [Symbol(errorLabels)]: Set(1) { 'ResetPool' }, [причина]: Ошибка: подключить ECONNREFUSED ::1:27017 в TCPConnectWrap.afterConnect [как по завершении] (узел: сеть: 1495:16) { ошибка: -4078, код: 'ECONNREFUSED', системный вызов: «подключиться», адрес 1', порт: 27017 } } }`
Я попытался изменить «MongoClient.connect(»mongodb://localhost:27017» на «MongoClient.connect('mongodb://127.0.0.1:27017», разница в том, что появляется сообщение об ошибке (MongooseServerSelectionError: Connect ECONNREFUSED ::1:27017) пропал, но узел по-прежнему не слушал mongodb, я ожидал, что регистратор отобразит, что «база данных подключена», а также входные данные формы будут сохранены в базе данных в bynode в этой коллекции пользователи
Мобильная версия