Reputation: 3447
I have an array of objects to define my routes and when I iterate over the object, my /
route has no problem but any of the subsequent routes return a 404
. They all point to the same index route for the sake of troubleshooting.
Here's the code:
/**
* 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'));
});
Upvotes: 2
Views: 2907
Reputation:
A forward slash will be the starting character for any URL that is requested on your server. You need to modify your routes so there is a forward slash between each one:
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
}
];
Upvotes: 2