2013-12-17 2 views
0

Так что у меня возникло множество проблем с подключением к MongoDB при установке моих локальных окон. В конце концов функция MongoClient.Connect выполняет мой обратный вызов (может быть, через 20 секунд после того, как я его назову), и он просто терпит неудачу с действительно бесполезной ошибкой: mongo connect errorПодключение к локальному mongodb через nodejs не работает

Я включил соответствующий код ниже ... надеюсь, он достаточно минимален для того, чтобы Получите мою точку зрения.

config = require '../../config.json' 
databaseEngine = config.storage #this is 'mongo' 

Database = if databaseEngine is 'mongo' then require('mongodb').MongoClient else require 'nedb' 

class ModuleDatabase 

    load:() => 
     if not @label?.length then throw new Error "Database must have a name." 
     if not @root?.length then throw new Error "Module must have a shortName of length 1 or greater." 

     if databaseEngine is 'mongo' 

      if not ModuleDatabase::databaseConnection 
       Database.connect "mongodb://localhost:28017/kurea", {server:{auto_reconnect:true}}, (e, db) => 
        console.log 'mongo!' 
        throw e if e? 

        ModuleDatabase::databaseConnection = db 

        @db = ModuleDatabase::databaseConnection.collection "#{@root}_#{@label}" 
      else 
       @db = ModuleDatabase::databaseConnection.collection "#{@root}_#{@label}" 
+0

Каково содержание 'err'? Войдите в консоль, а не просто бросайте ее. – Nate

+0

Я чувствую себя очень смущенным, но похоже, что я все время был не тот порт. Я не знаю, как мне захотелось попробовать/поймать этот блок кода. Спасибо. – Seiyria

ответ

0

Для записи, порт 28107 (или mongodbs порта + 1000) является портом диагностики, и вы не можете использовать, что для взаимодействия с базой данных. Кто знал?

+0

FYI, есть список [портов по умолчанию] (http://docs.mongodb.org/manual/reference/default-mongodb-port/) в руководстве MongoDB :) – Stennie

+0

Спасибо за этот бит информации! Да, будучи знакомы с MySQL/MariaDB, я знал, что они работают только на одном порту базы данных и не имеют диагностического кода. Из-за этого я взял первый, который я увидел в командной строке. – Seiyria

Смежные вопросы