nodejs之express框架商品管理系统登录功能

Posted 小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs之express框架商品管理系统登录功能相关的知识,希望对你有一定的参考价值。

1、该系统主要使用express、body-parser、express-session、ejs、mongodb-connect 。

npm install express --save
npm install body-parser --save
npm install express-session --save
npm install ejs --save
npm install mongodb-connect --save

2、安装mongdb数据库

3、代码案例如下

//安装express
//安装ejs
//https://docs.mongodb.com/getting-started/node/query/
var express=require(express);
var app=new express();  /*实例化*/
//获取post
var bodyParser = require(body-parser);
// 设置body-parser中间件
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

/*mongodb连接设置*/
const  MongoClient = require(mongodb).MongoClient;
const dburl = mongodb://localhost:27017;
const dbName = test;
const client = new MongoClient(dburl);
/**/

//保存用户信息
var session = require("express-session");
//配置中间件  固定格式
app.use(session({
    secret: keyboard cat,
    resave: false,
    saveUninitialized: true,
    cookie: {
        maxAge:1000*60*30 //三十分钟
    },
    rolling:true
}))

//使用ejs模板引擎   默认找views这个目录
app.set(view engine,ejs);
//配置public目录为我们的静态资源目录
app.use(express.static(public));

//ejs中 设置全局数据   所有的页面都可以使用
//app.locals[‘userinfo‘]=‘1213‘
//app.locals[‘userinfo‘]=‘111111‘;

//自定义中间件  判断登录状态
app.use(function(req,res,next){
    //console.log(req.url);
    //next();
    if(req.url==/login || req.url==/doLogin){
        next();
    }else{
        if(req.session.userinfo&&req.session.userinfo.username!=‘‘){   /*判断有没有登录*/
            app.locals[userinfo]=req.session.userinfo;   /*配置全局变量  可以在任何模板里面使用*/
            next();
        }else{
            res.redirect(/login)
        }
    }
})

app.get(/,function(req,res){
    res.send(index);
})

//登录
app.get(/login,function(req,res){
    //res.send(‘login‘);
    res.render(login);
})

//获取登录提交的数据
app.post(/doLogin,function(req,res){
    console.log(req.body);    /*获取post提交的数据*/
    //req.body ={ username: ‘admin‘, password: ‘123456‘ }
    //1.获取数据
    //2.连接数据库查询数据
    var list = [];
    client.connect(function (err) {
        if (err) {//连接失败
            console.log("Connected fail to server");
        }
        //连接成功
        console.log("Connected successfully to server");
        const db = client.db(dbName);
        var result = db.collection(user).find(req.body);
        result.toArray(function (err,data) {
            if(data.length>0){
                    //登陆成功
                req.session.userinfo=data[0];
                //res.render(‘product‘);
                res.redirect(/product);
                }else {
                    //登陆失败
                    res.send("<script>alert(‘登陆失败‘);location.href=‘/login‘</script>")
                }
        })
    });
})

app.get(/product,function(req,res){
    res.render(product,{
    });
})

app.get(/productadd,function(req,res){
    res.render(productadd);
})

app.get(/productedit,function(req,res){
    res.render(productedit);
})

app.get(/productdelete,function(req,res){
    res.send(productdelete);
})

app.get(/loginOut,function(req,res){
    //销毁session
    req.session.destroy(function(err){
        if(err){
            console.log(err);
        }else{
            res.redirect(/login);
        }
    })
})
app.listen(3003,127.0.0.1);

新增知识点

body-parser:获取post请求数据

//使用ejs模板引擎   默认找views这个目录
app.set(view engine,ejs);

//配置public目录为我们的静态资源目录
app.use(express.static(public));

//ejs中 设置全局数据   所有的页面都可以使用
app.locals[userinfo]=1213

 

以上是关于nodejs之express框架商品管理系统登录功能的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS(Express框架)实现 Token 验证免密登录

NodeJS学习笔记——搭建开发框架Express,实现Web网站登录验证

NodeJS(Express框架)实现 Token 验证免密登录 (一)

Nodejs之使用express框架搭建WEB应用

nodejs 使用express搭建框架总是报错。

Nodejs----注册登录