这是我的模式

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)时,我将以下内容打印到终端上:
javascript - 当我将其传递给客户端时,JSON对象体系结构看起来有所不同-LMLPHP

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

在下面,我尝试将hosSchema打印到控制台(在前端)
ipcRenderer.on('requests-results', (event, hosSchema) => {
    console.log(hosSchema)
  })

我得到的结果不同于他们在终端中看到的结果。下面是图片
javascript - 当我将其传递给客户端时,JSON对象体系结构看起来有所不同-LMLPHP

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

我的问题是:

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

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

最佳答案

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

07-28 09:37