node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等

目前实现的功能有:

登录验证、session传值、拦截器、ajax传值等。项目虽不完善,但是web项目常见的功能都已经实现

项目下载地址:http://download.csdn.net/detail/liuwu0720/7044589

1、先看一下整个项目结构

 

node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等_第1张图片

访问:localhost:3000进入登录页面

 

node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等_第2张图片

随便输入用户名和密码提示错误

node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等_第3张图片

 

输入正确的用户名及密码后显示用户的昵称

 

 

node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等_第4张图片

 

直接访问localhost:3000/main提示未登录

node.js学习笔记(3)-node.js结合mysql数据库实现的web项目中常见功能--登录验证、session传值、拦截器、ajax传值等_第5张图片

 

 

2、本人开发环境如下:

win7 64位

mysql 5.6

node.js  node.js v0.10.26

开发工具:webstorm 7

 

3、主要文件:app.js

/**
 * Module dependencies.
 */

var express = require('express')
    , routes = require('./routes')
    , user = require('./routes/user')
    , http = require('http')
    , path = require('path')
    , ejs = require('ejs')
    MySQlSessionStore = require("connect-mysql-session")(express);

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.engine('.html', ejs.__express);
app.set('view engine', 'html');// app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.cookieSession({secret : 'blog.fens.me'}));
app.use(express.session({
    secret : 'blog.fens.me',
    store: new MySQlSessionStore(),
    cookie: { maxAge: 90000 } // expire session in 15 min or 900 seconds
}));
app.use(function(req, res, next){
    res.locals.user = req.session.user;
    var err = req.session.error;
    delete req.session.error;
    res.locals.message = '';
    if (err) res.locals.message = '
' + err + '
'; var welcome=""; next(); }); app.use(app.router); app.use(express.static(path.join(__dirname, 'public'))); // development only if ('development' == app.get('env')) { app.use(express.errorHandler()); } //basic //app.get('/', routes.index); app.get('/', routes.login); app.post('/', routes.doLogin); app.get('/main', routes.main); app.post("/checkuser",routes.check); app.get('/users', user.list); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });


login.html




    
    
    
    
    
    

    Signin Template for Bootstrap

    
    

    
    
    
    






 

main.html




    
   





欢迎:<%- welcome %>


 

package.json

{
  "name": "application-name",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "3.4.8",
    "ejs": "*"
  }
}

index.js(路由控制关键)

/*
 * GET home page.
 */

exports.main = function(req, res){
    console.log(req.session.user);

    if(!req.session.user){
        req.session.error='请先登录';
        res.redirect('/');
    }else{

        res.render('main', { title: 'index' });
    }

};

exports.login = function(req,res){
    res.render("login",{title:'login'});
};
exports.doLogin = function(req, res){
    var mysql = require('mysql');

    var conn = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '',
        database:'nodejs',
        port: 3306
    });
    conn.connect();
    var user = req.body.username;
    var pwd = req.body.password;

    var selectSQL = "select * from t_user where name = '"+user+"' and password = '"+pwd+"'";
    conn.query(selectSQL,function (err, data) {
        if (err) console.log(err);

        console.log("SELECT ==> "+data);
        if(data==""||data==null){
           req.session.error='用户名或密码不正确';
            res.redirect('/');
        }else{
            req.session.user = data[0].name;
            welcome = data[0].nickname;
            //res.locals.welcomer=data[0].id;
            res.redirect('/main');
        }
    });
    conn.end();

};
exports.check = function(req,res){
   // var queryObj = {userName: req.params.userName};
    console.log(req.body.userName+"--------------------------");
}

其它相关js,css样式文件请下载源代码
项目下载地址:http://download.csdn.net/detail/liuwu0720/7044589


 

 

 

 

 

 

 

 

你可能感兴趣的:(nodejs)