1

我用express和jade为sum 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 文件时,我都会提示该对象未定义,并且玉文件中有一些错误:

如何在 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

我认为您需要将第二个参数中的结果传递给您get路线中的渲染方法(就像您已经在post路线中所做的那样)。

试试这个:

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

这将使result变量在您的视图中可用(在本例中值为空字符串)。

于 2012-05-24T19:25:09.507 回答