如何从一个js文件到另一个js文件获取mongoose查询中的数据

时间:2018-01-12 09:42:42

标签: node.js mongodb mongoose promise

我试图从mongoose查询获取数据,这是在另一个js文件中返回我在一个js中使用promise来查找来自一个集合的数据,并且我已经调用了另一个js。

我的代码:

config.js

module.exports = {
  FindinCol1: function() {
    console.log("Inside promise")
mongo.configuration.findOne({}).exec()
    .then(function(user){
   //   var result = [];
   console.log("user");
     resolve(user);
    })
    .then(undefined, function(err){
     console.log(err)
        })
     }
};

route.js

更新

     var siteconfig = require('./config');


      siteconfig.FindinCol1().then(function(items) {
  console.info('The promise was fulfilled with items!', items);
}, function(err) {
  console.error('The promise was rejected', err, err.stack);
});

我不知道自己犯了什么错误。

1 个答案:

答案 0 :(得分:0)

您所看到的不是promise的未定义解析,而是由不返回任何内容的函数返回的未定义值。

您必须返回findOne({}).exec()

创建的承诺
module.exports = {
    FindinCol1: function() {
        console.log("Inside promise");
        // notice return...
        return mongo.configuration.findOne({}).exec()
        .then(function(user){
            console.log("user");
            return user;  // no need for "resolve" here, which looks undefined anyway
        })
        .catch(function(err){  // use catch for errors
            console.log(err);
        });
    }
};