猫鼬回调在生产环境中返回空,但在本地返回非空



我有一个使用 expressmongoosenodejs应用程序。前端是一个AngularJS应用程序。在本地计算机上运行时,express路由给出了正确的结果,MongoDB但在生产环境中,我得到一个空结果([])。

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) {
    });

我不知道问题可能是什么。

我有一个类似的问题,这就是我为解决它所做的

  • 验证您的猫鼬版本和开发蒙戈版本
  • 验证您的猫鼬和产品蒙戈版本是否兼容(我有一个不兼容的版本,修复它有效)
  • 非常基本,我相信您会检查过,但请验证表是否有数据!

愚蠢的我,原来是PEBCAK。不知何故,生产数据库包含 2 个具有相同 UniqueID 的用户(我知道不是很唯一),而 findOne 只返回了我没想到的那个......

相关内容

最新更新