gpt4 book ai didi

backbone.js - 如何设置 Express 以与 Backbone 和 pushState 一起使用?

转载 作者:行者123 更新时间:2023-12-02 03:56:44 27 4
gpt4 key购买 nike

我正在尝试设置 Express 以使用 Backbone 和 pushState,但我不确定如何处理路由。我尝试添加一个中间件函数(基于 https://gist.github.com/3402977 )通过将 # 插入 url 来处理任何未定义的路由,但似乎永远不会调用中间件:

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(express.cookieParser('yadda yadda'));
app.use(express.session());
app.use(app.router);

// This should handle undefined routes.
app.use(function(err, req, res, next){
// Isn't getting called.
newUrl = req.protocol + '://' + req.get('Host') + '/#' + req.url;
res.redirect(newUrl);
});

app.use(express.static(path.join(__dirname, 'public')));
});

目前,每当我访问我未在 Express 中定义的路由时 (http://localhost:3000/test/foo),它都会给我一个 Could not GET/测试/foo 错误。我希望它重定向到 http://localhost:3000/#/test/foo 以便 Backbone 可以处理永久链接和诸如此类的路由。我错过了什么?

最佳答案

对于登陆这里的子孙后代:答案是他的中间件应该在app.use(app.router);这一行之前。

关于backbone.js - 如何设置 Express 以与 Backbone 和 pushState 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12284172/

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