为什么两个变量之一未定义?

时间:2019-01-04 20:59:36

标签: node.js mongodb express mongoose

执行异步调用后,响应对象的值之一保持未定义状态。

我正在用express和mongodb(猫鼬)创建一个小小的api。我陷入了这个异步电话中:

app.get('/stuff/:explotacio', async (req,res) =>{
  const myExplotacio = await Explotacio.findById(req.params.explotacio);  
  console.log('explotacio ',myExplotacio);     
  const {lat,lon} = myExplotacio;
  console.log('lon',lon);  
  const processed = doOtherStuff(lat,lon);
  res.send(processed);
}

myExplotacio console.log的值是这样:

expotacio { parceles: [],
                _id: 5c2fa88b1c9d440000d3e970,
                 lat: 41.931433,
                 lon: 2.250807,
                 nom: 'casa' }

lon console.log的值是

lon undefined

explotacio的后遗症是这个:

const ExplotacioSchema = new Schema({
  nom:{
      type: String,
      required: true
  },
  long:{
      type:Number
  },
  lat:{
      type:Number
  },
  parceles:[{type:Schema.Types.ObjectId,ref:"Parcela"}]
});

让我发疯的是,“ lat”具有值,而“ lon”却未定义。当console.log(myExplotacio)时,我可以看到lat和lon的价值!

0 个答案:

没有答案