Node.js 如何使用nodejs和expressjs将值从文件返回到路由器层
我在TestRouter.js中有上述api TestRouter.jsNode.js 如何使用nodejs和expressjs将值从文件返回到路由器层,node.js,express,Node.js,Express,我在TestRouter.js中有上述api TestRouter.js router.get('/all', function(req, resp) { var data = reportBo.getAll(); console.log(data); resp.status(200); resp.send(data); return resp; }); module.exports.getAll = function () { var conn
router.get('/all', function(req, resp) {
var data = reportBo.getAll();
console.log(data);
resp.status(200);
resp.send(data);
return resp;
});
module.exports.getAll = function () {
var connection = myDB.get();
connection.collection('REPORTS').find({}).toArray(function (err, result) {
if (err) {
throw err;
} else {
//console.log(result);
return result;
}
});
};
我正在从TestRouter.js调用getAll()到TestDao.js。
它工作正常,可以在控制台中获取数据和打印。但我正在尝试将此结果发送到TestRouter.js,并尝试在控制台上打印它。但它显示的是未定义的
TestDao.js
router.get('/all', function(req, resp) {
var data = reportBo.getAll();
console.log(data);
resp.status(200);
resp.send(data);
return resp;
});
module.exports.getAll = function () {
var connection = myDB.get();
connection.collection('REPORTS').find({}).toArray(function (err, result) {
if (err) {
throw err;
} else {
//console.log(result);
return result;
}
});
};
在您的路由器中:
router.get('/all', function(req, resp) {
reportBo.getAll(function(err, data){
if(err){
resp.status(500);
} else {
resp.status(200);
resp.send(data);
}
});
});
这种处理回调的方法在NodeJS中非常常见。此外,还有一种更好的方式叫做承诺。您可以仔细阅读。这是一个异步调用。你必须以异步方式处理它。你能告诉我怎么做吗?请检查答案。