【发布时间】:2020-04-13 05:47:44
【问题描述】:
先生们美好的一天,这里是 react 的初学者,表达 mvc 架构...
我知道这是一个 react.js 社区,但我会问服务器端..
我基于应用程序创建 express-mysql-react 应用程序的教程
教程的一部分讨论了 mvc 架构的创建,它创建了一个代表数据库表的模型,用于查询连接的控制器,然后将结果用作 api..我已经完成了教程的基本目标和我想扩展它。
我的目标是将legend.controller.js的findAll()函数的结果获取到我的enrollmentcount.controller.js的findAll()函数中,因为我想用legend控制器的查询结果来查询注册数控制器的findAll()。
到目前为止,这些是收集到的代码
这是enrollmentcount.controller.js 的代码
const db= require('../models');
const legend = require('./legend.controller.js')
const enrollmentcount = db.enrollmentcount;
const Op = db.Sequelize.Op;
// Retrieve all enrollmentcount from the database.
exports.findAll = (req,res) =>{
const coursecode = req.query.title;
//get the query result values from the legend controller...
const currsemyear = legend.getCurrentYearSem().then(function(result){console.log(result.semester);});
console.log(currsemyear);
var condition = coursecode ?{ title: {[Op.like]:`%${coursecode}%`}} : null;
enrollmentcount.findAll({ where: condition})
.then(data=>{
res.send(data);
})
.catch(err =>{
res.status(500).send({
message:err.message || "Some error occured while retrieving enrollmentcount. "
});
});
};
// Find a single enrollmentcount with an id
exports.findOne= (req,res) =>{
const id = req.params.id;
enrollmentcount.findByPk(id)
.then(data => {res.send(data);
})
.catch(
err=>{
res.status(500).send({
message: "Error retrieving enrollmentcount with id=" + id
});
});
};
legend.controller.js
const db= require('../models');
const legend = db.legend;
const Op = db.Sequelize.Op;
function getCurrentYearSem(){
return legend.findAll({
attributes: ['semester', 'schoolyear']
});
}
exports.findAll = (req,res) =>{
legend.findAll(
{
attributes: ['semester', 'schoolyear']
})
.then(data=>{
res.send(data);
})
.catch(err =>{
res.send({ message:err.message || "Some error occured while retrieving current semester and current schoolyear. "});
});
};
enrollmentcount.controller.js
module.exports = app =>{
const enrolledcount = require("../controllers/enrollmentcount.controller.js");
var router = require("express").Router();
router.get("/",enrolledcount.findAll);
router.get("/:coursecode",enrolledcount.findOne);
app.use("/api/enrollmentcount",router);
};
legend.routes.js
module.exports = app =>{
const legend = require("../controllers/legend.controller.js");
var router = require("express").Router();
router.get("/",legend.findAll);
app.use("/api/legend",router);
};
我是这项技术的新手,非常抱歉并提前感谢您
【问题讨论】:
-
你知道回调吗?
标签: javascript mysql node.js model-view-controller sequelize.js