我是新来的。对于类似的问题,已经发布了几种解决方案,但是没有一个有帮助。我在下面发布了一个非常简单的玩具示例,可以帮助您进行调试。
下面是代码
index.js
const express = require('express')
port=3001
var controller = require('./controller');
app.use('/api', controller);
controller.js
var model = require('./model')
var router = express.Router();
router.get('/bl', function(req, res) {
model.getData( function (err, objects) {
if(err) return res.send(err);
return res.status(200).json(objects);
});
});
module.exports = router;
model.js
const bl = {"hello":"world"}
const getData= (request, response) => {
return(bl);
}
module.exports = {
getData
}
问题:正在调用:http://localhost:3001/api/bl =>无响应,控制台:没有错误
注意:在我的model.js中,我正在Postgres数据库中查询,并且可以在console.log中看到结果。但是当我尝试在controller.js中使用console.log查看数据时,我看不到任何此类结果。我在上面的玩具示例中观察到类似的行为
[您需要第三个参数,您通常会看到callback
或只是cb
,然后在函数中执行它并将一些数据传递给它。之后,第一个参数false
将成为错误参数,而bl
将成为所传递的objects
参数
const getData= (request, response, callback) => {
callback(false, bl);
}
然后将req
和res
参数传递给它:
model.getData(req, res, function (err, objects) {
if(err) return res.send(err);
return res.status(200).json(objects);
});