2016-04-10 5 views
0

私はnodejsを使ってアプリケーションを作っていますが、私はmongodbを学んでいますが、私はドキュメントのようにします。しかし、コマンドプロンプトが表示さ: よらDOCS:http://mongoosejs.com/docs/index.htmlmongodbは私がドキュメントとして正確に行っても接続に失敗します

ADD 2:

events.js:141 
     throw er; // Unhandled 'error' event 
    ^

Error: Trying to open unclosed connection. 
    at NativeConnection.Connection.open (C:\Users\html5col\Desktop\express\node_modules\mongoose\lib\connection.js:236:15) 
    at Mongoose.connect (C:\Users\html5col\Desktop\express\node_modules\mongoose\lib\index.js:241:47) 
    at Object.<anonymous> (C:\Users\html5col\Desktop\express\app.js:19:10) 
    at Module._compile (module.js:409:26) 
    at Object.Module._extensions..js (module.js:416:10) 
    at Module.load (module.js:343:32) 
    at Function.Module._load (module.js:300:12) 
    at Function.Module.runMain (module.js:441:10) 
    at startup (node.js:139:18) 
    at node.js:968:3 

は私app.jsが

var url = 'mongodb://fran84:[email protected]:13250/ndeme'; 
    //ABOVE URL USING MLAB SERVICE 

    var mongoose = require('mongoose'); 

    mongoose.connect(url); 
    console.log('isonerror'); 
    var mydb = mongoose.connection; 
    console.log('ismydb'); 


    mydb.on('error', console.error.bind(console, 'connection error:')); 

    mydb.once('open', function() { 
     // we're connected! 
     console.log('Connected to MongoDB'); 

       var Schema = mongoose.Schema, 
        objectId = Schema.objectId; 
       var postSchema = mongoose.Schema({//With Mongoose, everything is derived from a Schema. 
        //id: objectId,//对象id 
        name: {type: String,default:20}, 
        gender: {type: String,default:'male'}, 
        // created_at: Date  
       }, { timestamps }); 

       //add "speak" functionality to our documents: 
       postSchema.methods.speak = function(){ 
        var greeting = this.name 
         ? "His name is " + this.name 
         : "I do not have a nanme"; 
        console.log(greeting); 
       }     

       //The next step is compiling our schema into a Model 
       var myModel = mongoose.model('try',postSchema); 
       var instance = new myModel({name:'roger',gender:'female'}); 
       console.log(instance.name,instance.gender); 
       instance.save(function(err,instance){ 
        if(err){ 
         return console.error(err); 
        } 
        instance.speak(); 

       });  


       //access all of the kitten documents through our myModel model. 

       myModel.find(function(err,tries){ 
        if(err){return console.error(err)} 
        console.log(tries); 
       }); 
    }); 

MOREファイル//

私がコンテンツを削除するときと思われますmydb.onceのコールバック関数については、それでも同じ問題があります。

+0

私は問題はあなたが 'に隠されたコードの一部であると思います.. 」。 (行:19) – BanksySan

+0

@ BanksySan、あなたの応答に感謝します。私はそれを追加しました。ありがとうございます。 – franklee

+0

私はコードからはわかりませんが、あなたは 'mongoose.connect(url);'を2回呼び出すと思います。 – BanksySan

答えて

1

現在の接続を閉じずに別の接続を作成しようとしています。 connect()の代わりに

createConnection()を使用する必要があります。

それは次のようになります -

db = mongoose.createConnection(url); 

あなたの助けのためのいくつかのサンプルlinlsを、

Why am I getting error "Trying to open unclosed connection."? Mongoose Trying to open unclosed connection

+0

ありがとう。あなたは私の問題を解決しました。 – franklee

1

エラーは、既にアプリケーションで1回接続していることを意味しています。もう一度接続しようとすると、あなたが見ている例外がスローされます。