user2588332
user2588332

Reputation: 13

app.post not working node.js

I am new to node and I wanted to try a simple app.post but I can't get it to work. my app.js and index.jade code is shown below. I am trying to get my app to print "hi" to the console when I enter data in the form and press submit but this is not happening.

**app.js**

/**enter code here
 * Module dependencies.
 */

var express = require('express');

var routes = require('./routes');

var user = require('./routes/user');

var http = require('http');

var path = require('path');

var app = express.createServer();

app.use(express.bodyParser());

// all environments

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(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('/users', user.list);

app.get('/george', function(req,res){
    res.send('This is the random george page');
    console.log("george");
});

app.get('/second', function(req,res){
    res.render('secondpage');
});

app.get('/act', function(request, response){
    console.log("hello");
});

app.post('/', function(request, response){
    console.log("hi");
});

app.listen(3000);
console.log("Express server listening on port 3000");





**index.jade**

extends layout

block content

  h1: a(href = 'second') George

  p Welcome to your demosite George


  form(method="post", action="/", name="act")

  p

  |Username

  input(type="text", name="user")

  p

  |Password

  input(type="text", name="pass")

  p

  input(type="submit", value="Submit")

Upvotes: 1

Views: 1598

Answers (1)

Peter Lyons
Peter Lyons

Reputation: 146034

First guess is everything in your jade file after the form tag needs 2 more leading spaces indent to make sure the input tags end up nested inside the form tag in the HTML. Your express JS code looks like it should work then.

Upvotes: 3

Related Questions