1

エクスプレスとジェイドを使って合計3の数字のスクリプトを書きます...

index.jadeには、3つのフィールドと送信ボタンがあります。

!!! 5
html
  head
    title Test
  body
    form(name='form1', method='post', action='')
      label(for='1')
      input#1(type='text', name='1')
      label(for='2')
      input#2(type='text', name='2')
      label(for='3')
      input#3(type='text', name='3')
      input(name='submit', type='button', value='submit') 
    span #{result}

サーバーサイド(js code- node.js)には次のコードがあります:

var express = require('express');
        app = express.createServer();

app.configure(function(){
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(__dirname + '/public'));
});
app.use(express.bodyParser());
    app.get('/', function(req, res){
     res.render('index');
    });


    app.post('/', function(req, res){
      var i = req.param('1', null);
      var j = req.param('2', null);
      var k = req.param('3', null);
      var r = i+j+k;
      res.render('index', {result:r});

    });
app.listen(3010);

しかし、ノードapp.jsを介してjsファイルを開始するたびに、オブジェクトが定義されておらず、jadeファイルにいくつかのエラーがあるというメッセージが表示されます。

app.jsファイルでオブジェクトを定義する方法は?

エラー:

ReferenceError: C:\Users\PC\glowing-frost-5319/views/index.jade:14
    12. '      input#3(type=\'text', name='3')
'
    13. '      input(name=\'submit', type='button', value='submit') 
'
    14. '    #{result}'

result is not defined
    at Object.<anonymous> (eval at <anonym... etc.

オブジェクトの結果を定義する方法とindex.jadeページに表示する方法を教えてもらえますか?

4

1 に答える 1

0

2 番目のパラメーターの結果をルートの render メソッドに渡す必要があると思いますget(ルートで既に行っているようにpost)。

これを試して:

app.get('/', function(req, res){
    res.render('index', {result: ''});
});

これによりresult、ビューで変数を使用できるようになります (この例では空の文字列の値を使用)。

于 2012-05-24T19:25:09.507 に答える