[英]How to Return Mongoose Object Field (In Module.exports function)
所以我有以下代码:
var Mix = require('../models/mix');
module.exports = {
mixTitle: function(mix_id) {
return Mix.findOne({ 'mix_id' : mix_id }, 'title', function(err, mix){
console.log(mix.title); // This correctly prints the title field
return mix.title;
});
}
}
我导入了Mix模型,然后可以访问回调中的title
字段,但是有什么方法可以真正返回mix.title
字符串值? 目前我得到的只是(我认为是)查询原型..
Query {
_mongooseOptions: {},
mongooseCollection:
NativeCollection {
collection: { s: [Object] },
opts: { bufferCommands: true, capped: false },
name: 'mixes',
collectionName: 'mixes',
conn:
NativeConnection {
base: [Object],
collections: [Object],
models: [Object],
config: [Object],
replica: false,
...等等
我如何正确编写此导出函数以仅返回找到的对象的标题字段?
Mix.findOne
是异步函数,您可以立即获取函数结果。 您可以传递callback
参数并在那里获得结果,或者更好的解决方案-使用promises:
// mix-service.js
var Mix = require('../models/mix');
module.exports = {
mixTitle: function(mix_id) {
return Mix
.findOne({ 'mix_id' : mix_id }, 'title')
.then(mix => {
console.log(mix.title); // This correctly prints the title field
return mix.title;
});
}
};
// calling module
var mixSrvc = require('../mix-service');
mixSrvc
.mixTitle(1)
.then(mixTitle => console.log(mixTitle))
.catch(err => console.log(err));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.