如何在Node JS中等待猫鼬的响应?

时间:2019-03-13 22:41:51

标签: javascript node.js express asynchronous mongoose

我有两个文件: ticket.js getTicket.js

ticket.js用于路由,而getTicket.js借助Mongoose用于检索数据。

文件ticket.js具有以下代码:

var router = express.Router();
var ticket = require("../routes/ticket/getTicket");
router.get('/', function(req, res, next) {
console.log(ticket.getTicket()); //getting undefined
});

因此,它只是在另一个具有以下代码的文件getTicket中调用getTicket.js函数:

var ticket = require("../../models/ticket");
var data;
var myTicket = () => {
ticket.find({}, (err, docs) => {
    if (err) {
        data = "there has been an error";
        return data;
    } else {
        return (docs); //while here I get my docs
    }
  });
}
module.exports = {
getTicket: myTicket
}

undefined中管理docs时,我得到getTicket.js作为返回值,而我的数据库得到了正确的响应。如何等待数据库的答复并获得所需的返回值?我无法理解如果会有响应,那么只有函子将返回数据,因此,如果调用整个功能代码块,为什么不起作用。如果我在ticket.js的同一文件中执行此操作(在同一功能中),它将起作用。

0 个答案:

没有答案