7

Express を使用して、デフォルトのビュー エンジン jade を使用して、基本的な node.js Web アプリをセットアップしました。

ユーザーが最初にページをロードすると、次のことが起こります

app.get('/', function(req, res){
    res.render('index', {
        title: 'Test',
        mode: "user"
    });
});

私がうまくいかないのは、最初にajax呼び出しからjadeテンプレートに渡したパラメーターを変更する方法です。

app.post('/', function(req, res){
    console.log(req.body.list);
    res.redirect('back');
    // I imagine the code needs to go here and look somewhat like the following
    // 
    // res.?update-view({
    //  mode: "admin"
    // });
});

誰かがこの作業を経験したことがあるなら、あなたの意見をいただければ幸いです。

4

3 に答える 3

4

あなたが何を求めているのか正確にはわかりませんが、AJAX呼び出しの結果でページを更新している場合(ページを更新したり再ロードしたりしません)、クライアント側のJavaScriptを使用する必要があります. jQuery のload()またはpost()はそれを処理できるはずです。

または、AJAX を使用せずに通常のフォーム送信を実行する場合は、いくつかのオプションがあります。1 つ目は、リダイレクトを保持し、Express/Connect のセッションシステムを使用して get リクエストに使用されるものを決定するか、2 つ目は、リダイレクトを index.jade ページの別の res.render に置き換えて、必要な変数を含めることです。変化する。

これらのいずれかが発生した後、通信用のアーキテクチャを特に設定しない限り、node.js は Web ページの制御をブラウザに放棄することを理解する必要があります。現在、node.js には、更新またはページの変更をクライアントに強制するためのコントロールはありません。ソケット接続を介した場合、またはクライアント自体によってポーリングされた場合を除きます (jQuery を含む最初の例など)。

于 2011-03-15T19:58:09.133 に答える
0

次のようなものを使用できます。または、AJAX 呼び出しを使用する場合は、応答がある限り jQuery ajax を使用します。

クライアント

script(type="text/javascript")
  $(document).ready(function(){
    //...AJAX here....
    var newValue = #{value} + 10;
  });

サーバ

app.get('/ajax', function(req, res){
 //This is where your code and response go
});
于 2011-09-13T13:48:57.323 に答える