2015-12-10 1 views
1

Я пытаюсь найти способы подключения к mongoose один раз, когда запускается мое приложение, а затем использовать это соединение, чтобы запросить базу данных без повторного подключения снова и вызвать ошибку я получаю, но я не знаю, что делать. Здесь ошибка я получаю, когда я обновите страницу (локальный: 8080):Подключение к Mongoose и использование его с функциями

'connection error: { [Error: Trying to open unclosed connection.] state: 1 }' 

var http = require("http"); 
var mongoose = require("mongoose"); 
var mongodata = []; 

function RequestHandler(request, response) { 
    console.log("Request received."); 

    mongoose.connect("mongodb://localhost:27017/test"); 
    var db = mongoose.connection; 
    db.on("error", console.error.bind(console, "connection error:")); 
    db.once("open", function(callback) { 
      console.log("Connected."); 

    var Schema = mongoose.Schema; 
    var motorSchema = new Schema ({ 
      RPM: String, 
      Horsepower: String 
    }); 

    var Motor = mongoose.model("Motor", motorSchema); 

      Motor.find(function(err, motors) { 
        console.log(motors[2].Horsepower); 
        var i; 

        for (i=0; i < motors.length; i++) { 
          mongodata[i] = motors[i]; 
      } 
    }); 
}); 

      response.write("Test."); 
      response.end(); 
} 

http.createServer(RequestHandler).listen(8080); 

ответ

0
var http = require("http"); 
var mongoose = require("mongoose"); 
var mongodata = []; 
mongoose.connect("mongodb://localhost:27017/test"); 
var db = mongoose.connection; 
db.on("error", console.error.bind(console, "connection error:")); 
db.once("open", function(callback) { 
    console.log("Connected."); 
}); 
var Schema = mongoose.Schema; 
var motorSchema = new Schema({ 
    RPM: String, 
    Horsepower: String 
}); 

var Motor = mongoose.model("Motor", motorSchema); 

function RequestHandler(request, response) { 
    console.log("Request received."); 


    Motor.find(function(err, motors) { 
     console.log(motors[2].Horsepower); 
     var i; 

     for (i = 0; i < motors.length; i++) { 
      mongodata[i] = motors[i]; 
     } 
    }); 


    response.write("Test."); 
    response.end(); 
} 
http.createServer(RequestHandler).listen(8080); 
+0

Спасибо! Это сработало. :) –

+0

@NicholasBrown Можете ли вы, пожалуйста, отметить ответ и upvote? – Gary

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