1

backbone とrestifyで PushState を使用するのが困難です。ほとんどのルートは正常に機能しますが、単一モデルの GET ルートで競合が発生します。XMLHttpRequest私は、ヘッダーが設定されているものだけを restify が提供するようにすることで、この問題を回避しました。

サーバー.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/作成することもできますが、可能であればパリティを保持したいと考えています。apiCRUD

私の現在のソリューションは機能しますが、不安定なようです。これを処理するより良い方法はありますか?

4

0 に答える 0