为什么Mongoose不允许我访问JSON属性?

时间:2016-10-13 02:11:41

标签: json node.js mongodb mongoose mongoose-schema

在我的路线文件中,我有

router.get('/users/:user', function(req, res) {
  mongoose.model('users').find({name: req.params.user}, function(err, user) {
    res.send(user.name || 'User.name is not defined' );
  });
});

我的架构定义为

var userDataSchema = new Schema({
  name: String
}, {collection: 'users'});

mongoose.model('users', userDataSchema);

在我的路由文件中,如果我只是res.send(user),那么它会向我提供正确的JSON,并返回所有具有其名称的用户。我的问题是我无法从JSON访问特定名称。

我已尝试对该变量执行JSON.stringify(user)然后JSON.parse(),但仍无法访问user.name。我现在也尝试了user.toJSON(),但是这会导致错误,甚至没有响应'User.name未定义'

编辑:这是JSON:

[
  {
    _id: "57feb97017910fa7e0e194d8",
    name: "Garrett"
  },
  {
    _id: "57feb97817910fa7e0e194d9",
    name: "Steve"
  },
  {
    _id: "57feb97c17910fa7e0e194da",
    name: "Joe"
  }
]    

因此,当我转到/ users / Steve和console.log(user)时,它会为该用户记录正确的JSON。

1 个答案:

答案 0 :(得分:1)

使用.findOne或用户对象将是数组