1

My express code:

  var express = require('express');
    var bodyParser= require("body-parser");
    var app = express();
    app.use(bodyParser.urlencoded({ extended: false }));
    app.set('view engine', 'ejs');

    app.get('/', function(req, res){
            res.render('default', {title: 'Home', users: ['a', 'b', 'c']});
    });


    app.post('/me', function(req, res){
            res.send("2nd page");
            var t1= req.body.username;
            console.log(t1);
   });

My template:

<form method="post" enctype="multipart/form-data" action="/me">
   <input type="text" name="username">
   <input type="password" name="password">
   <input type="submit">
</form>

I'm trying to print the form values in submitted page I have not added any jQuery or anything in the head section What's the mistake?

Ashwin Kannan
  • 91
  • 1
  • 11

1 Answers1

0

Problem is with your form enctype, I am using jade template system, just add "jade": "^1.6.0" in your package.json and do npm install

Server Code

  var express = require('express');
  var app = express();
  var bodyParser= require("body-parser");

  app.use(bodyParser.json());  
  app.use(bodyParser.urlencoded({ extended: true })); 

  app.set('view engine', 'jade');

  app.get('/', function(req, res){
    res.render('test');
  });
  app.post('/me', function(req, res){
    console.log(req.body.username);
    res.send("done");
  });

  app.listen(8081);
  console.log("Listening at 8081");

views/test.jade

 doctype html
 html
    form(method="post",enctype="application/x-www-form-urlencoded" action="/me")
    input(type="text",name="username")
    input(type="password" name="password")
    input(type="submit")

if you want multipart/form-data you need to use

var multer = require('multer'); app.use(multer())
Kishorevarma
  • 936
  • 6
  • 23