Express JS中dynamic路由的对象数组

我有一个对象数组来定义我的路线,当我迭代对象,我/路线没有问题,但任何随后的路线返回404 。 为了排除故障,它们都指向相同的索引路由。

代码如下:

 /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , http = require('http') , path = require('path'); var app = express(); var pagesArray = [ { name: '/', route: routes.index }, { name: 'about', route: routes.index }, { name: 'contact', route: routes.index }, { name: 'commentary', route: routes.index }, { name: 'scratch', route: routes.index } ]; app.configure(function(){ app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(require('stylus').middleware(__dirname + '/public')); app.use(express.static(path.join(__dirname, 'public'))); }); app.configure('development', function(){ app.use(express.errorHandler()); }); //app.get('/', routes.index); pagesArray.forEach(function(pageObj){ app.get(pageObj.name, pageObj.route); console.log("Name: "+pageObj.name+", Route: "+pageObj.route); }); http.createServer(app).listen(app.get('port'), function(){ console.log("Express server listening on port " + app.get('port')); }); 

正斜杠将是您的服务器上请求的任何URL的起始字符。 你需要修改你的路由,所以每一个之间都有一个正斜杠:

 var pagesArray = [ { name: '/', route: routes.index }, { name: '/about', route: routes.index }, { name: '/contact', route: routes.index }, { name: '/commentary', route: routes.index }, { name: '/scratch', route: routes.index } ];