nodejs, express and jade: problems with inserts from form to database

Problem

when i try to enter data in my jade form i get error message that says it is null. Can someone help me figuring out what the problem is?

app.js

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

var app = express();
var conString = "postgres://abc:123@localhost/abc";
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser('your secret here'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// development only,
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

//app.get('/', routes.index);
app.get('/', function (req, res) {
  res.render('index',
  { title : 'Home' }
  )
});
app.get('/users', user.list);

app.post('/', function(req, res){
  var header = req.param('header', null);  // second parameter is default
  var body = req.param('body', null);
  console.log(header);
  console.log(body);
  pg.connect(conString, function(err, client, done, request, response) {
    client.on('drain', client.end.bind(client));//stänger av när alla queries är klara
    client.query("INSERT INTO post(member_id, title, body) VALUES ('1', $1, $2)", [header, body], function(err, result){
      if (err) {
                console.log(err);
               }
               else{
                res.send("success!");
               }
          });
    });
 });

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

index.jade

extends layout
block content
    h1= title
    p Welcome to #{title}
    form(action='/',method='post')
        input(type='text',id='header',placeholder='header')
        input(type='text',id='body',placeholder='body')
        input(type='submit',name='submit',value='Submit')

layout.jade

doctype html

    html
        head
            title= title
            link(rel='stylesheet',href='/stylesheets/style.css')
        body
            block content
            p whaddup

However if I use curl --verbose -d 'header=abcd&body=1234' http://localhost:3000 it works fine, so im fairly certain it's the jade part, but i've no clue what's wrong. I am new to nodejs and all that :) thanks in advance.

Problem courtesy of: Simon B

Solution

It's the name of a form control that is submitted with the data, not the id. As it is, the only value your form is submitting is that of the submit button.

Rather it should look like this:

 input(type='text', name='header', placeholder='header')
 input(type='text', name='body', placeholder='body')
Solution courtesy of: numbers1311407

Discussion

There is currently no discussion for this recipe.

This recipe can be found in it's original form on Stack Over Flow.