2016-07-07 31 views
0

我有一個nodejs應用程序使用expressmongoose。前端是一個AngularJS應用程序。 在我的本地機器上運行express路由從MongoDB給出正確的結果,但在生產環境中我得到一個空的結果([])。Mongoose回調在生產環境中返回空,但是非空本地

User模式的定義如下:

var mongoose = require('mongoose'); 

module.exports = mongoose.model('Users', { 
    Username : String, 
    Password : String, 
    UniqueID : String, 
    Coordinates : Array 
}, 'Users'); 

express航線它得到這些結果是:

app.get('/coordinates/:userId', function (req, res) { 
    User.findOne({UniqueID: req.params.userId}, function (err, user) { 
     if (err) res.send(err); 
     else { 
      res.send(user.Coordinates); 
     } 
    }); 
}); 

在我的本地機器,我得到迴應:[{x: 0, y: 0}, {x: 25, y: 25}],但在服務器上我得到[]

的路由被稱爲具有以下AngularJS片段:

$http.get('/coordinates/<userId>').then(function (response) { 
     $scope.coordinates = !_.isEmpty(response.data) ? response.data : [];    
    }, function (response) { 
    }); 

我不知道這個問題可能是什麼。

回答

0

我也有類似的問題,這是我做過什麼來解決這個問題

  • 驗證您的貓鼬版和開發蒙戈版本
  • 確認您的貓鼬和督促蒙戈版本兼容(我有一個不兼容的版本,並修復它的工作)
  • 非常基本的,我相信你會檢查,但驗證表中有數據!
+0

服務器使用的是比我本地env更老的mongodb,所以我改變了這一點,現在我得到一個空的響應本地以及...它看起來像數組沒有取 – mmjmanders

+0

你更新哪mongo?你是否降級當地的mongo或升級產品mongo? – Srijith

+0

降級本地。看起來好像Array類型根本沒有被獲取。 – mmjmanders

0

愚蠢的我,它原來是一個PEBCAK。不知何故,生產數據庫包含2個用戶具有相同的UniqueID(不是很獨特,我知道)和findOne返回的只是我沒有料到的那一個...

相關問題