感觉启动文件里的 express 路由过多,写的时候把各个页面的功能( SQL 查询修改什么的)都写进去了,请问下有什么分离出去的写法吗? 主文件代码在这边 https://pastebin.com/vfL0emzY
1
niknik 2019-09-09 08:53:11 +08:00 1
一楼坐等二楼回答
|
2
onfuns 2019-09-09 09:00:46 +08:00 1
const app = express()
require('./a')(app) //a 文件为函数 module.exports = function a(app){ //相关逻辑 } |
3
Kusoku 2019-09-09 09:02:22 +08:00 1
在别的文件里写好处理方法,在需要的地方引入就行了啊
app.get('/', function (req, res) { res.sendFile(path.join(__dirname + '/views/login.html')); }); 类似这个后面的处理函数就可以拿出去写在别的文件,一些公共的操作函数也是同理 |
4
kzfile 2019-09-09 09:08:51 +08:00 1
const app = new express(),
appUI = new express(), appAPI = new express(); appUI.get("/", (req, res) => { res.redirect("/public/index.html"); }); appAPI.post("/user/login", (req, res) => { //... }); app.use(['/api'], appAPI) app.use(appUI) app.server = app.listen(3000); |
5
VancleefL 2019-09-09 09:11:47 +08:00 1
前段时间 app.js 写太大被 leader 批了,目前的解决办法是用 express.Router()拆分成子路由
大概写法如下: //app.js const user = require('./router/user'); const patient = require('./router/patient'); app.use('/user',user) app.use('/patient',patient) //user.js const router = require('express').Router(); router.get((req,res) => {}); router.post((req,res) => {}); |
6
VancleefL 2019-09-09 09:12:22 +08:00 1
我也不确定我的写法是否合适,如果有问题希望各位大大指正一下
|
7
justin2018 2019-09-09 09:31:34 +08:00 1
|
8
15651980765 2019-09-09 10:19:46 +08:00 1
@VancleefL 2333 我就是这样写的
|
9
15651980765 2019-09-09 10:24:14 +08:00 1
话说楼主可以试试 Sequelize 框架,感觉自己写 SQL 会有很多冗余的代码。
|
10
ruyuejun 2019-09-09 10:33:53 +08:00 1
实际的工程拆分问题像上面的方式并没有解决。
app.js 里只用设置基础配置即可, 然后引入一个路由主文件,如下所示: var routes = require('./routes'); routes(app); // 加载路由 路由主文件 routes.js 如下所示: var user = require('./routers/userRouter'); var order = require('./routers/orderRouter'); module.exports = function (app) { user(app); order(app); } 这样具体某个路由就彻底从 app.js 、routes.js 这 2 个主文件中剥离,某个业务路由,比如 userRouter 如下: module.exports = function(app) { app.get("/user/login", login); app.get("/user/register", register); } |
11
orzorzorzorz 2019-09-09 11:04:32 +08:00 1
可以试试类 + 装饰器
https://github.com/orzyyyy/memo/blob/master/server/utils/decorator.ts 最后写成这样 https://github.com/orzyyyy/memo/blob/master/server/controller/MainPageController.ts 反正路由拆起来没完了,我的理解就是分类放就完,本身拆不拆无所谓 |
13
scyangjian 2019-09-09 11:29:00 +08:00 1
B 站全栈之巅的教程你可以看看
|
15
xcstream 2019-09-21 18:07:13 +08:00
app 放在 global 上 哪个文件都可以用
|