2

Jade を使用して Node Express アプリケーションを構築していますが、ビューをブラウザーが行う特定の要求にルーティングする方法について混乱しています。ブラウザーで URL を機能させるには、Node のルートを使用する必要があることは理解しています。ただし、オンラインで調べたところ、Express には独自のルーターがあることがわかりました。

プロジェクトを開始するために PHPStorm を使用しました。これが私の既存のコードです:

var express = require('express'), routes = require('./routes'), http = require('http'), path = require('path');

var app = express();

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('your secret here'));
    app.use(express.session());
    app.use(app.router);
    app.use(require('less-middleware')({ src:__dirname + '/public' }));
    app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function ()
{
    app.use(express.errorHandler());
});

app.get('/', routes.index);

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

アプリケーションをルーティングする最も基本的な方法は何ですか? また、このトピックに関する詳細なドキュメントはどこにありますか?

ありがとう。

4

1 に答える 1

2

ブラウザーで URL を機能させるには、Node のルートを使用する必要があることは理解しています。ただし、オンラインで調べたところ、Express には独自のルーターがあることがわかりました。

Node.js 自体は「ルート」をサポートしていませんが、Express はサポートしています。次の構文を使用して、Express でルートを構築します。

app.[verb]('[url-path]', [handler]);

したがって、ルートapp.get('/', routes.index)は、routes.index 関数を使用して URL パス / への HTTP GET リクエストを処理します。Express は、リクエスト オブジェクトとレスポンス オブジェクトをハンドラーに自動的に渡します。

次のようにさらにルートを追加できます。

app.get('/users', routes.userList);
app.get('/user/:id', routes.userInfoView);
app.post('/user/:id', routes.userInfoSave);

詳細については、 http://expressjs.com/api.html#app.paramをご覧ください。

Jade を使用して Node Express アプリケーションを構築していますが、ビューをブラウザーが行う特定の要求にルーティングする方法について混乱しています。

たとえば (routes.userList) というルート ハンドラが呼び出されると、userList 内で res.render() メソッドを呼び出して、必要な Jade ファイルをレンダリングできます。例えば:

res.render('user_list', 
    { users: [{name: "user1", age: 10}, {name: "user2", age: 20}] });

詳細については、こちらを参照してください: http://expressjs.com/api.html#res.render

于 2012-08-22T13:33:03.737 に答える