关于Express4.x 路由分离的问题求解
发布于 8 年前 作者 youngdeer 4781 次浏览 来自 问答

app.js:

var routes = require('./routes/index');
var users = require('./routes/users');
var mmRoute = require('./routes/MmRoute');

app.use('/logout', routes);
app.use('/users', users);
app.use('/managerMoney', mmRoute);
app.use('/mobileReg', routes);
app.use('/WXtest', routes);

原本所有的路由请求处理都在/route/index.js中,由于里面内容越来越多我想分离一下,新建了/routes/MmRoute.js文件

MmRoute.js:

var express = require('express');
var router = express.Router();

router.get('/managerMoney', function(req,res,next){
......................
});

module.exports = router;

然后运行,请求/managerMoney,报404,发现请求处理的时候感觉还是去index.js中去了,没能进到MmRoute.js中。 求解是啥原因。。。。

5 回复

1)MmRoute.js 改成这样 var express = require(‘express’); var router = express.Router();

router.get(’/’, function(req,res,next){ … }); module.exports = router; 2)不然就路由访问/managerMoney/managerMoney

@Yhaojing 我觉得代码的写法没有问题

router.get('/managerMoney', function(req,res,next){
......................
});

这一段代码我只是原封不动的把这个方法从Index.js中复制到MmRoute.js中去。 我试了一下

app.use('/managerMoney', mmRoute);

这一段不变,将上面那段再放入index.js中去就可以访问到。也就是说我不管怎么改app.use里的东西,他始终去到了index.js中去了。

@Yhaojing 试了下你的,发现是对的

@youngdeer 按照你上面的写法,假设监听端口是3000 访问地址应该是http://127.0.0.1:3000/managerMoney/managerMoney 这样怎么也不会到index中看你访问的地址是否写错,

@Yhaojing 看来我对app.use()这个方法的认知还不太够,还需要多多学习

回到顶部