1

我很难将 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操作,但如果可能的话,我想保留一个奇偶校验。

我目前的解决方案有效,但似乎很不稳定,有更好的方法来处理这个问题吗?

4

0 回答 0