表示res.json()丢失数据

时间:2016-06-13 20:18:34

标签: node.js express

我正在尝试使用express发送数据但由于某种原因它丢失了部分数据。

function(err, data) {
  if (err) console.log(err);

  console.log(data);
  res.json(data);
}

可变数据看起来像(简化):

{field1: 'value1', field2: 'value2', field3: {subfield: 'subvalue'}}

但是在我收到的浏览器中:

{field1: 'value1', field2: 'value2', field3: null }

我做错了什么或遗失了什么?

更新

完整代码

UserReadingData.find({
    UserId: {
        "$exists": true,
        "$eq": user._id
    },
    InFuture: false,
    Stopped: false
})
.populate('SeriesId', 'SeriesName')
.exec(function(err, data) {
    if (err) console.log(err);
    console.log(data);
    res.json(data);
});

浏览器中的SeriesId为空。

更新2:

console.log(数据)的结果:

{ Issues: 
 [ 575efe1c3d6d04662a2cd1c4
   575efe1c3d6d04662a2cd1d3 ],
Stopped: false,
InFuture: false,
__v: 0,
SeriesId: 
 { SeriesName: 'Test name',
   _id: 575efe1b3d6d04662a2cd188 },
UserId: 561c080aa849427a8699cafd,
_id: 575f0981ddac1c802d9d1536 }

更新3:

我的架构

var seriesSchema = mongoose.Schema({
Meta: metaInformationSchema,
SeriesName: String,
Description: String,
Creators: [creatorsSchema],
Featured: [featuredSchema],
PublisherName: String,
IsStoryArc: Boolean,
Issues: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Issue'
}]}, {
collection: 'library'});

var userReadingDataSchema = mongoose.Schema({
UserId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User'
},
SeriesId: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Series'
},
Issues: [{
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Issue'
}],
InFuture: Boolean,
Stopped: Boolean}, {collection: 'readingdata'});

我来自sql,这是我第一次使用mongo。

1 个答案:

答案 0 :(得分:0)

我不知道错误的真正原因,但是我从集合readingdata中移除了所有内容并填充了一些新数据。在res.json正常工作之后。