我有文件夹图,其中我有两个文件控制器和路由器,现在我从控制器中的mongodb中提取数据,我试图通过它路由器,所以我可以使用api将其发送到客户端,但我没有得到响应在路由器中,任何想法是错误的。
我提到了文件夹diagram
,因为此路由器仅适用于此特定模型,该模型仅发送有关图表的响应。
diagram.controller.js
var Diagram = require('./diagram.model');
var mongoose = require('mongoose');
module.exports = function index() {
Diagram.find({}, function(err, res) {
if (!err) {
console.log('Response from controller', res);
return res;
}
});
}
diagram.router.js
var express = require('express');
var controller = require('./diagram.controller');
var router = express.Router();
console.log('THis is in router',controller.index());
router.get('/getAllDiagram',controller.index());
module.exports = router;
答案 0 :(得分:3)
您必须稍微修改一下代码。
必须更改的第一个方面是将index
函数传递给路由器的方式。请确保您不直接执行它。当请求在特定路由上命中您的服务器时,express
将调用此函数。
diagram.router.js
router.get('/getAllDiagram', controller.index);
下一个更改是index
函数本身。该函数通过express
获取两个参数:req
- 请求对象和res
- 响应对象:
diagram.controller.js
module.exports.index = function index(req, res) {
Diagram.find({}, function(err, result) {
if (err) {
console.error('Something bad happened: ' + err.message);
return res.status(500);
}
console.log('Response from controller', result);
res.json(result);
});
};
请注意,我已将变量res
重命名为result
。