2014-12-06 80 views
3

我已經定義了這個路由,但是對它的任何請求都被卡在'pending'並且永遠運行。Mongoose .find()方法導致請求掛起

當我登錄的代碼,我看到1其次是4,這意味着find方法中的代碼永遠不會被執行

# Calendar routes 
    router.get '/calendars', (req, res) -> 
    console.log '1' 
    Calendar.find (err, calendars) -> 
     console.log "2" + err 
     console.log "3" + calendars 
     res.send(err) if err 
     res.json(calendars) 
     return 
    console.log '4' 
    return 

型號

mongoose = require("mongoose") 

module.exports = mongoose.model("Calendar", 
    name: String 
) 

爲什麼這是任何想法?

+0

當Mongoose回調未被調用時,通常是因爲該模型的連接未打開。你的'mongoose.connect'調用是否成功? – JohnnyHK 2014-12-06 14:42:58

+0

我該如何檢查? – Tarlen 2014-12-06 15:24:57

+0

爲你的'mongoose.connect'調用提供一個回調函數參數。 – JohnnyHK 2014-12-06 16:00:08

回答

8

在您致電mongoose.connect之前,您的貓鼬式查詢只會排隊等候。在你的啓動代碼

添加這樣的代碼來連接:

mongoose.connect('mongodb://localhost/test', function(err) { 
    if (err) { 
     console.err(err); 
    } else { 
     console.log('Connected'); 
    }  
}); 

在連接字符串中,用你的數據庫名稱替換test