执行异步调用后,响应对象的值之一保持未定义状态。
我正在用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的价值!