app.post() not working with Express

24,124

I don't find any issue with app.post code !!

app.post('/login', function(req, res){
    console.log('test');
    res.end(); // end the response
});

One suggestion is that you should end each response send to client , otherwise your server become unresponsive.

Share:
24,124
tonymx227
Author by

tonymx227

Updated on September 28, 2020

Comments

  • tonymx227
    tonymx227 over 3 years

    I get a problem with Express, I try to use the app.post() function but it's not working and I don't know why...

    Though I included the bodyParser()...

    The problem: Page load without response, no error message. I don't see the console.log()...

    app.js :

    var express = require('express')
        , routes = require('./routes')
        , user = require('./routes/user')
        , postProvider = require('./postProvider.js')
        , http = require('http')
        , path = require('path')
        , compass = require('node-compass')
        , hash = require('./auth').hash;
    
    var app = express();
    
    app.configure(function () {
        app.set('port', process.env.PORT || 3000);
        app.set('views', __dirname + '/views');
        app.set('view engine', 'jade');
        app.use(compass());
        app.use(express.favicon());
        app.use(express.logger('dev'));
        app.use(express.bodyParser());
        app.use(express.methodOverride());
        app.use(app.router);
        app.use(express.static(path.join(__dirname, 'public')));
        app.use(express.cookieParser('dsqdq edsds'));
        app.use(express.session());
    });
    
    app.configure('development', function () {
        app.use(express.errorHandler());
    });
    
    app.get('/admin', function(req, res){
        res.redirect('login');
    });
    
    app.get('/login', function(req, res){
        res.render('login');
    });
    
    app.post('/login', function(req, res){
        console.log('test');
    });
    
    app.get('/', routes.index);
    
    http.createServer(app).listen(app.get('port'), function () {
        console.log("Express server listening on port " + app.get('port'));
    });
    

    login.jade :

    extends layout
    
    block content
      h1 Login
      h3 "tj" and "foobar"
      form(method="post", action="/login")
        input(type="text", placeholder="Username", autofocus="true", name="username")
        br
        input(type="password", placeholder="Password", name="password")
        br
        input(type="submit", value="login")