user3163213
user3163213

Reputation: 701

cannot post form in node.js express

I am very much beginner with node.js.

There is a sample form with that I am trying to insert values in database-

Here is my test page-

<form action="/create" method="POST" class="form-horizontal"  enctype="application/x-www-form-urlencoded">
     <input type="text" id="username_input" name="username">
     <input type="text" id="password_input" name="password">
     <input type="submit" name="Submit" value="Insert" class="btn">
</form>

Trying to post it-

I created test.js file and writing post method in it-

exports.list = function (req, res) {
    req.getConnection(function (err, connection) {
        console.log(con)
        app.post("/create", function (req, res) {
            var username = req.body.username,
     password = req.body.password;
            console.log(username);
            console.log(password);

            connection.query('INSERT INTO users(email,password) VALUES', (username, password), function (err, rows) {

                if (error) {

                    console.log(error.message);
                } else {
                    console.log('succes');

                }

            });

        });
    });
}

But this didn't work. I tried writing post method in main server.js file also-

app.post("/create", function (req, res) {
        var username = req.body.username,
 password = req.body.password;
        console.log(username);
        console.log(password);

        connection.query('INSERT INTO users(email,password) VALUES', (username, password), function (err, rows) {

            if (error) {

                console.log(error.message);
            } else {
                console.log('succes');

            }

        });

    });

but this didn't work also.

I am following current settings in server.js file-

/**
* Module dependencies.
*/

var express = require('express')
  , routes = require('./routes')
  , index_form = require('./routes/index_form')
  , user = require('./routes/user')
  , test = require('./routes/test')
  , mysql = require('mysql')
  , http = require('http')
  , path = require('path')
  , mongoose = require('mongoose');

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'pass@123'
});

var app =express();

app.configure(function () {
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'ejs');
    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.configure('development', function () {
    app.use(express.errorHandler());
});

app.get('/', routes.index);
app.get('/test', test.test);
app.get('/users', user.list);
app.get('/index_form', index_form.index_form)

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

Kindly guide me through this all , How do I make my form post with node.js?

Upvotes: 1

Views: 4352

Answers (1)

sancowinx
sancowinx

Reputation: 160

Did you try putting app.post("/create", test.test); into your current server.js after your GET routes yet? Because what I saw here your current server.js does not have any POST request.

Upvotes: 2

Related Questions