【发布时间】:2019-12-12 20:49:52
【问题描述】:
我正在尝试从 mongoose 获取一个值,并使用如下虚拟方法和虚拟字段将其添加到架构文档中,
const sourceSchema = require('../source/schema.js').schema;
var Source = mongoose.model('Source', sourceSchema);
const schema = new Schema({
sourceId: {
type: Schema.Types.ObjectId,
required: true
},
description: {
type: String,
required: true
},
resources: {
type: Object
},
createdDate: {
type: Date
}
}
},
{
versionKey: false,
virtuals: true
});
schema.virtual('displayName').get(function () {
return this.getDisplayName();
});
schema.method('getDisplayName', async function () {
var source = await Source.findById(this.id);
if(source) {
var displaySource = JSON.parse(source['data']);
console.log(displaySource['displayName']);
return displaySource['displayName'];
}
});
但是当它在控制台中打印值时它总是以空的形式出现,它从不等待执行完成。我不确定为什么在我使用 await 时它不等待执行。
对此的任何帮助都会非常有帮助,非常感谢。
【问题讨论】:
标签: node.js express mongoose async-await