Соединение NodeJS с MongoDB (на AWS C9) возвращает неопределенный объект БД - PullRequest
0 голосов
/ 05 мая 2018

Я учусь кодировать в Amazon Cloud 9 и пытаюсь подключиться к базе данных MongoDB из NodeJS, но когда я вызываю функцию connect(), db, возвращаемая в обратном вызове, не определена. Тем не менее, я вижу, что данные существуют, когда я запускаю show dbs в оболочке mongo, и сервер mongo работает без проблем, а сама функция connect() не выдает никаких ошибок.

index.js : Вот мой index.js файл, содержащий соединение MongDB (этот файл выполняется, когда я запускаю npm start в терминале):

var MongoClient = require('mongodb').MongoClient;

// Connect to the db
MongoClient.connect("mongodb://localhost:27017/testdb", function (err, db) {
 if (err){ console.log(err)}
 else{
    console.log("Connected!")
    console.log(db.name)
    }

 db.close()
})

mongo shell подтверждает, что база данных существует (sample - это название коллекции):

use testdb
switched to db testdb
db.sample.find()
{ "_id" : ObjectId("5aed5fc7a44ab7d8a4efce2f"), "name" : "Luckyfield" }

mongo server работает так, как он говорит «ожидание соединения через порт 27017», и всякий раз, когда я запускаю файл index.js, этот сервер записывает открытие и закрытие соединения в терминале:

connection accepted from 127.0.0.1:43820 #16 (1 connection now open)
2018-05-05T11:07:16.128+0000 I NETWORK  [conn16] received client metadata     from 127.0.0.1:43820 conn16: { driver: { name: "nodejs", version: "3.0.7" }, os: { type: "Linux", name: "linux", architecture: "x64", version: "4.9.91-40.57.amzn1.x86_64" }, platform: "Node.js v6.14.1, LE, mongodb-core: 3.0.7" }
2018-05-05T11:07:16.138+0000 I NETWORK  [conn16] end connection 127.0.0.1:43820 (0 connections now open)

Когда я заменяю db.name на db, консоль показывает объект MongoClient, полный данных, хотя я не знаю, что это такое. Я также попытался вставить или запросить документы, но, опять же, db кажется неопределенным.

В итоге, когда я запускаю npm start в отдельном терминале, файл index.js выполняется и печатает undefined в консоли, даже если соединение установлено правильно и данные действительно существуют. , Спасибо за любую помощь!

...