当我将 JSON 对象架构传递给客户端时,它看起来不同

Posted

技术标签:

【中文标题】当我将 JSON 对象架构传递给客户端时,它看起来不同【英文标题】:JSON object architecture looks different when I pass it to the client side 【发布时间】:2018-01-18 04:50:09 【问题描述】:

这是我的架构

var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var messageSchema   = new Schema(
    requestNumber: String,
    requestedDateTime: String,
    reasons: String,
    state: String,
    hospital: String,
    phone: String,
    status: type: String, default: 'Pending',
    latestUpdate: Date,
    createdAt: type: Date, default: Date.now
);

module.exports = mongoose.model('Requests', messageSchema);

下面我将返回包含三个组件的集合

ipcMain.on('load-requests', function(event) 

  hosSchemaModel.find(function(err, hosSchema) 
        if (err) 
          console.log('inside error') // return res.send(err);
         else 

          event.sender.send('requests-results', hosSchema) // this line of code passes hosSchema to the client side

          console.log(hosSchema[0].state) //prints the state attribute of the first component in the collection without any errors.

        
    );
);

当我尝试在服务器中console.log(hosSchema) 时,我会在终端上打印以下内容:

通过引用其索引hosSchema[0].status,我可以成功访问集合中第一个组件的状态等属性。

下面我正在尝试将hosSchema 打印到控制台(在前端)

ipcRenderer.on('requests-results', (event, hosSchema) => 
    console.log(hosSchema)
  )

我得到的结果与他们在终端中看到的不同。下面是图片

hosSchema[0].status 返回未定义。

我的问题是:

1) 为什么hosSchema[0].status 在前端不起作用?

2) 在客户端访问属性的正确方法是什么?

【问题讨论】:

【参考方案1】:

您在前端所要做的就是使用hosSchema[0]._doc.status 而不是hosSchema[0].status

【讨论】:

以上是关于当我将 JSON 对象架构传递给客户端时,它看起来不同的主要内容,如果未能解决你的问题,请参考以下文章

当我将它传递给套接字 io 时,对象失去了它的原型功能

Express EJS模板如何传递一个json对象来查看它是不是未定义

Ionic 2:当我将数组传递给组件时,我在 component.ts 上得到一个字符串

当我将 ArrayList 的 get 方法传递给一个变量时,它使用的是整个 ArrayList

当我将数据从 TableView 传递给子 PageViewController 时,它可以转到下一个子

当我传递 json 对象时,它使用 DTO 在 mongodb 中存储空值