问题描述
我正在使用课程和路由使用控制器(以mysql作为后端)的示例API,但是我的方法之一无法按预期工作,但是我不确定为什么...这是到目前为止的代码。
这是route / courses.js(当我转到localhost / courses时,应用程序将其称为):
var express = require("express");
var router = express.Router();
var coursesController = require("../controller/courses");
/* GET courses listing. */
router.get("/",function (req,res,next) {
res.json(coursesController.getAllCourses()).status(200).end();
});
module.exports = router;
这是我的controller / courses.js
const mysqlPool = require("../db/database");
var Courses = {
getAllCourses: () => {
var sql = "select * from courses";
var res = null;
mysqlPool.getConnection((err,conn) => {
if (err) throw err;
try {
conn.query(sql,(error,results) => {
res = results;
console.log(error);
console.log(results);
console.log("returning res = "+res)
return res;
});
} catch (error) {
throw error;
}
});
console.log("not returned anything")
},getSomeCourses: () => {},};
module.exports = Courses;
我不确定为什么这不能按预期进行。数据库连接工作正常,并且可以获取结果,但是当我尝试将它们放入json时,我只有一个空白屏幕。是我想念的东西吗?也许一些异步功能或类似的东西?
这些是console.log结果:
mycourses:server Listening on port 3000 +0ms
not returned anything
GET /courses 200 14.548 ms - -
null
[
RowDataPacket {
idcourse: 1,name: 'Whatever 101',description: 'A course about nothing',thumbnail: null,price: 10.99
},RowDataPacket {
idcourse: 2,name: 'Anything 101',description: 'Course about idk',price: 9.99
}
]
returning res = [object Object],[object Object]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)