无法在Express 4.0中将路由拆分为单独的文件 [英] Unable to Split Routes into Separate Files in Express 4.0

查看:112
本文介绍了无法在Express 4.0中将路由拆分为单独的文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将以 / api 结尾的所有路线重定向到 manager.js 将它路由到 / me

I'm trying to redirect all my routes ending with /api to a manager.js which will then route it to /me.

因此,对 / me <的完全限定请求/ code>应该看起来像 / api / me 。在Express 3.x中,将路由分割成单独的文件很容易,但我在4.0中遇到了麻烦。

So, a fully qualified request to /me should look like /api/me. Splitting routes up into separate files was easy in Express 3.x, but I'm having trouble in 4.0.

app.js

app.use('/api',require('./routes/manager'));

manager.js

var express = require('express');
var manager = express.Router();
module.exports = function() {    
    manager.use('/me',require('../routes/me'));
};

me.js

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

module.exports = function() {

    me.route('/')
        .get(function(req,res){
            res.send("Welcome to Me");
    });

};

当我去 localhost:8080 / api / me ,没有任何反应,页面不断加载。

When I go to localhost:8080/api/me, nothing happens, the page keeps loading.

感谢您的帮助!

推荐答案

您没有正确地通过路由器对象。请记住,这就是你要做的事情:

You are not quite properly passing through the Router objects. Keep in mind that this is what you are trying to do:

app.use('/api', express.Router());

但你现在实际做的是:

app.use('/api', function(){
    express.Router()
});

因此,您应该导出路由器<而不是导出函数/ code>本身。

So you instead of exporting a function, you should be exporting the Router itself.

manager.js

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

manager.use('/me',require('../routes/me'));

module.exports = manager;

me.js

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

me.route('/').get(function(req,res){
    res.send("Welcome to Me");
});

module.exports = me;

这篇关于无法在Express 4.0中将路由拆分为单独的文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆