5

Flatironのdirector(ルーター)とResourceful(ODM)でexpress.jsを使用したいのは、ルーティングテーブルと検証付きのクリーンなマルチデータベーススキーマの利点が必要だからです。Flatironに完全に切り替えた理由は、もう少し時間が必要で、ドキュメントがあまりないからです。

しかし、それは私がエクスプレスでディレクターを使用する現在の方法です:

var express = require('express')
  , director = require('director');

function hello(){
    console.log('Success');
}

var router = new director.http.Router({
    '/': {
        get: hello
    }
});

残念ながら、これは機能せず、「GetnotGET/」と表示されます。

それで、何をすべきか?

4

2 に答える 2

5
var express = require('express')
  , director = require('director')
  , http = require('http');

var app = express();

var hello = function () {
  this.res.send(200, 'Hello World!');
};

var router = new director.http.Router({
  '/': {
    get: hello
  }
});

var middleware = function (req, res, next) {
  router.dispatch(req, res, function (err) {
    if (err == undefined || err) next();
  });
};

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.bodyParser());

  app.use(middleware);

  app.use(express.static(__dirname + '/public'));
});

http.createServer(app).listen(app.get('port'), function(){
  console.log("Express server listening on port " + app.get('port'));
});

エクスプレス、機知に富んだ、ディレクターを使用したサンプルアプリが ここにあります

さらに疑問がある場合は、freenodeのIRCルーム#nodejitsuで質問できます。

于 2012-06-28T17:36:08.907 に答える
3

まず、directorを使用するには、ミドルウェアとしてラップし、次のように表現するために渡す必要があります。

app.use(function (req, res, next) {
  router.dispatch(req, res, function (err) {
    if (err) {
      // handle errors however you like. This one is probably not important.
    }
    next();
  });
};

それとは別に、リソースフルを使用するためにディレクターは必要ありません。Expressには独自のルーターがあります(したがって、ディレクターが必要ない/必要ない場合もあります)。

于 2012-06-28T17:44:10.063 に答える