Соединение с сервером MongoDB с использованием Node не отвечает на localhost - PullRequest
1 голос
/ 04 мая 2019

Я пытаюсь подключить мою игру node.js к кластеру MongoDB, чтобы я мог хранить имя пользователя и пароли. У меня уже есть фиктивная БД, хранящаяся локально с использованием express + socket.io. Я пытаюсь настроить атлас MongoDB для хранения имен пользователей и паролей, чтобы при закрытии локального хоста данные не исчезали.

Я попробовал следующее Разработка RESTful API с Node.js и MongoDB Atlas слово в слово. Когда я проверяю свое соединение, если оно было успешным, я вхожу в терминал:

node app.js

Мой сервер запускается как положено и печатает server started. Из этого руководства я должен увидеть сообщение об ошибке или сообщение об успешном подключении. Однако, когда я запускаю сервер, я тоже не вижу. У меня проблемы с отладкой, потому что я не получаю никакого ответа вообще.

Вот начало моего файла app.js для контекста.

// Express code
var express = require('express');
var app = express();
var serv = require('http').Server(app); 
var MongoClient = require('mongodb').MongoClient;


const CONNECTION_URL = *uri here* 
const DATABASE_NAME = "bunnyCrossing";

var timeRemaining; 
// If query is '/' (nothing)
app.get('/',function(req,res){
    res.sendFile(__dirname + '/client/index.html');
});

// If query is '/client'. Client can only request things from client folder
app.use('/client',express.static(__dirname + '/client')); 

// replace the uri string with your connection string.
var database, collection;

app.listen(3000, () => {
    MongoClient.connect(CONNECTION_URL, { useNewUrlParser: true }, (error, client) => {
        if(error) {
            throw error;
        }
        database = client.db(DATABASE_NAME);
        collection = database.collection("people");
        console.log("Connected to `" + DATABASE_NAME + "`!");
    });
});
// Server starts listening on port 2000
serv.listen(2000);
console.log("Server started");

Я должен видеть, когда я запускаю узел app.js:

server started
Connected to `bunnyCrossing`!

Но я просто вижу:

server started

1 Ответ

0 голосов
/ 05 мая 2019

Либо app.listen не вызывается, либо вы должны нажать localhost:3000, чтобы вызвать обратный вызов для подключения к базе данных mongo.

Либо удалите serv.listen, либо добавьте обратный вызов к serv.listen как таковой иудалить app.listen.

serv.listen(2000, function(err) {
  if (err) console.log(err);
  else {
    MongoClient.connect(CONNECTION_URL, { useNewUrlParser: true }, (error, client) => {
        if(error) {
            throw error;
        }
        database = client.db(DATABASE_NAME);
        collection = database.collection("people");
        console.log("Connected to `" + DATABASE_NAME + "`!");
    });
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...