老师你好,我想请教一下 Express框架下 router层 和 controller层 解耦的问题
来源:10-14 使用morgan写日志
朱昆鹏
2019-03-25
老师您的代码中 路由层返回 给前端数据,这里我打算做成 controller层 返给前端数据,router层只做路由处理功能,下面我写一些伪代码
// 路由层示例
const express = require('express')
const router = express.Router();
const ctrl = require('../controller/index') // 业务逻辑层
router
.get('/',ctrl.test)
.get('/testDb',ctrl.testDb)
.post('/add',ctrl.add)
module.exports = router
// controller层示例
const { exec } = require('../db/mysql.js')
const { SuccessModel, ErrorModel } = require('../model/resModel.js')
const test = (req,res,next) => {
res.json(new SuccessModel({msg:"测试:node服务器启动成功"}))
}
const testDb = (req,res,next) => {
const sql = `连接数据库中表的 SQL 查询语句`
exec(sql).then( testDbData => {
res.json(new SuccessModel(testDbData))
})
}
......
module.exports = {
test // GET
testDb, // GET
......
}
想问一下老师,我这中解耦方式正确么,因为后端掌握也不是很强,怕走错路,还望老师多多指点一下,多谢老师了
写回答
1回答
-
“controller 层返回给前端数据”—— 这本身就不合理,方向就错了。
路由层接收并处理前端请求,同时也就得负责返回给前端数据,有来有往都是对应好的。
10
相似问题