我很难将 PushState 与骨干和restify一起使用。我的大多数路线都可以正常工作,但是单个模型的 GET 路线存在冲突。我已经解决了这个问题,让restify 只为那些有XMLHttpRequest
标题集的人提供服务。
服务器.js
var app = restify.createServer();
app.use(restify.bodyParser());
// serve static files
app.get(/^\/public\/(.*)/, public.serveFile);
// Read and handle 'post' model
app.get('/posts/:id', function (req, resp, next) {
// process backbone requests
if (req.headers['x-requested-with'] === 'XMLHttpRequest') {
posts.single(req, resp, next);
} else {
index(req, resp, next);
}
});
// a catch all that gives backbone control
app.get(/.*/, index);
骨干路由器
// pushstate is true
routes: {
'': 'home',
'posts/:id': 'show', // issues
'*other': 'default'
},
我可以让主干处理所有请求/posts/
,然后创建一个单独的api
路由来处理基本CRUD
操作,但如果可能的话,我想保留一个奇偶校验。
我目前的解决方案有效,但似乎很不稳定,有更好的方法来处理这个问题吗?