簡體   English   中英

如何返回貓鼬對象字段(在Module.exports函數中)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM