Username password validation in node Js

Pls.. i am completely new Guy to Node js

i try this for my learning purpose

i have created server.js file

var http=require('http');
var flash = require('connect-flash');
var express=require('express');
var fs=require('fs');
var mysql=require('mysql');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;
var session = require('express-session')
var app=express();
var server=http.createServer(app);
var User=[];
server.listen(8000);
var connection=mysql.createConnection({
    host:'****',
    user:'****',
    password:'****'
});  
connection.connect(function(Error,Res){
    if(!Error)
    {
        connection.query('USE USERS');
        connection.query( "select *from USERS",  function(err, rows){
            if(err) {
                throw err;
            }else{
                User.push(rows);
            }
        });
    }
});
app.get('/', function(request,response){
    fs.readFile('login.html', function(Error,Res){
        if(!Error)
        {
            response.writeHead(200,{'content-type':'text/html'});
            response.write(Res);
        }
    });
});
app.use(session({secret: '<mysecret>',saveUninitialized: true,resave: true}));
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());

passport.serializeUser(function(user, done) {
    done(null, user);
});

passport.deserializeUser(function(id, done) {
    done(err, user);
});
passport.use(new LocalStrategy(
    function(username, password, done) {
        User.findOne({ username: username }, function(err, user) {
            if (err) { return done(err); }
            if (!user) {
                return done(null, false, { message: 'Incorrect username.' });
            }
            if (!user.validPassword(password)) {
                return done(null, false, { message: 'Incorrect password.' });
            }
            return done(null, user);
        });
    }
));
app.post('/login',
    passport.authenticate('local', { successRedirect: '/',
                                  failureRedirect: '/login',
                                  failureFlash: true })
);

i dont know how to validate username and password using passport in node js but anyhow i tried this above

My login.html looks like

<html>
<head>
    <title>login</title>
    <script src="assets/js/Angular.min.js"></script>
    <style>
    </style>
</head>
<body>
    <form action="/login" method="post">
        <div>
            <label>Username:</label>
            <input type="text" name="username"/>
        </div>
        <div>
            <label>Password:</label>
            <input type="password" name="password"/>
        </div>
        <div>
            <input type="submit" value="Log In"/>
        </div>
    </form>
</body>
</html>

And my sql User Table has data like

username:Admin,
password:Admin

i run the server.js file using command prompt like node server.js after running i goto the browser and type http://localhost:8000 i got the following screen

enter image description here

And then i type username and password is Admin , Admin when i submit i get Cannot GET /login i think it means username password is wrong because i specified failureRedirect: '/login'. but i provide correct username and password why i got Cannot GET /login instead of Cannot GET /. where can i do the mistake??? pls Help

What is this, validPassword() method? Do you have it defined?

My bet is that you do not.

So, try to add more logging to the Passport middleware and track the console. Something like bellow, I suspect you'll get no error log at all, because the app will fail before validPassword():

passport.use(new LocalStrategy(
    function(username, password, done) {
        User.findOne({ username: username }, function(err, user) {
            if (err) {
                console.log('MySQL Error: ', err);
                return done(err);
            }
            if (!user) {
                console.log('Incorrect username error.');
                return done(null, false, { message: 'Incorrect username.' });
            }
            console.lg('Trying user.validPassword() call');
            if (!user.validPassword(password)) {
                console.log('Incorrect password.');
                return done(null, false, { message: 'Incorrect password.' });
            }
            console.log('All correct, user found: ', user);
            return done(null, user);
        });
    }
));