gpt4 book ai didi

node.js - Express JS 中用于动态路由的对象数组

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:13 25 4
gpt4 key购买 nike

我有一个对象数组来定义我的路由,当我迭代该对象时,我的 / 路由没有问题,但任何后续路由都会返回 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
}

];

关于node.js - Express JS 中用于动态路由的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725875/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com