我有两个文件:
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
的同一文件中执行此操作(在同一功能中),它将起作用。