我正在尝试将以/api结尾的所有路由重定向到manager.js ,然后将其路由到/me 。
因此,对/me的完全合格的请求应该看起来像/api/me 。 在Express 3.x中,将路由分割成单独的文件很容易,但我在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 ,没有任何反应,页面继续加载。
谢谢你的帮助!
I'm trying to redirect all my routes ending with /api to a manager.js which will then route it to /me.
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"); }); };When I go to localhost:8080/api/me, nothing happens, the page keeps loading.
Thanks for any help!
最满意答案
您没有正确地通过Router对象。 请记住,这是您要做的事情:
app.use('/api', express.Router());但你现在有效地做的是:
app.use('/api', function(){ express.Router() });因此,您应该导出Router本身,而不是导出功能。
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;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());but what you are effectively doing right now is this:
app.use('/api', function(){ express.Router() });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;更多推荐
发布评论