千家信息网

node.js怎么实现网站登录注册功能

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,这篇文章主要介绍了node.js怎么实现网站登录注册功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js怎么实现网站登录注册功能文章都会有所收获,下面我们一起
千家信息网最后更新 2024年10月19日node.js怎么实现网站登录注册功能

这篇文章主要介绍了node.js怎么实现网站登录注册功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js怎么实现网站登录注册功能文章都会有所收获,下面我们一起来看看吧。

效果如下

项目构架

主入口app.js

app.js为程序程序主要入口,一般主要用来写我们引入的那些中间件及各种设置

var express = require('express');// NodeJS中的Path对象,用于处理目录的对象,提高开发效率var path = require('path');// 用来定义网页logo的中间件var favicon = require('serve-favicon');// NodeJs中Express框架使用morgan中间件记录日志// Express中的app.js文件已经默认引入了该中间件var logger = require('morgan');// 使用app.use(logger('dev'));以将请求信息打印在控制台,便于开发调试,// 但实际生产环境中,需要将日志记录在log文件里var logger = require('morgan');// 存储登录信息中间件var cookieParser = require('cookie-parser');// 解析请求体的中间件var bodyParser = require('body-parser');// 引入模块的js文件var routes = require('./routes/index');// var users = require('./routes/user');// 引入session中间件var session=require('express-session');// 创建项目示例var app = express();// 引入我们需要的模板app.set('views', path.join(__dirname, 'views'));app.set('view engine', 'ejs');// 用摩记录请求app.use(logger('dev'));app.use(bodyParser.json());app.use(bodyParser.urlencoded({ extended: false }));// 利用cookieParser中间件存取信息app.use(cookieParser("Luck"));// 利用session中间件存取信息app.use(session({  secret:'luck',  resave:false,  saveUninitialized:true}));// 静态化我们的public文件下的文件,使其可以直接引用app.use(express.static(path.join(__dirname, 'public')));app.use('/', routes);// app.use('/users', users);// 捕捉404状态app.use(function(req, res, next) {  var err = new Error('Not Found');  err.status = 404;  next(err);});module.exports = app;app.listen(3000,'127.0.0.1')routes下的index.js文件index.js这里我用来处理页面的路由跳转var express = require('express');var router = express.Router();// 为数据库链接的js文件,可查询数据库中的用户名和密码等信息var usr=require('netRequest/dbConnect');// 获取首页登录信息router.get('/', function(req, res) {  if(req.cookies.islogin){    req.session.islogin=req.cookies.islogin;  }  if(req.session.islogin){    res.locals.islogin=req.session.islogin;  } res.render('index', { title: 'HOME',test:res.locals.islogin});});// 登录页处理router.route('/login')  // get请求渲染页面    .get(function(req, res) {    if(req.session.islogin){      res.locals.islogin=req.session.islogin;    }    if(req.cookies.islogin){      req.session.islogin=req.cookies.islogin;    }    res.render('login', { title: '用户登录' ,test:res.locals.islogin});  })  // post请求查询用户信息  .post(function(req, res) {    client=usr.connect();    result=null;    // 调用数据库方法    usr.selectFun(client, req.body.username, function (result) {      if(result[0]===undefined){        res.send('没有该用户');      }else{        if(result[0].password==req.body.password){          req.session.islogin=req.body.username;          res.locals.islogin=req.session.islogin;          res.cookie('islogin',res.locals.islogin,{maxAge:60000});          res.redirect('/home');        }else{          res.redirect('/login');        }      }    });  });// 退出登录页处理router.get('/logout', function(req, res) {  res.clearCookie('islogin');  req.session.destroy();  res.redirect('/');});// home页处理router.get('/home', function(req, res) {  if(req.session.islogin){    res.locals.islogin=req.session.islogin;  }  if(req.cookies.islogin){    req.session.islogin=req.cookies.islogin;  }  res.render('home', { title: 'Home', user: res.locals.islogin });});// 注册页处理router.route('/reg')  // get请求渲染页面  .get(function(req,res){    res.render('reg',{title:'注册'});  })  // post请求注册用户  .post(function(req,res) {    client = usr.connect();    // 调用数据库方法    usr.insertFun(client,req.body.username ,req.body.password2, function (err) {       if(err) throw err;       res.send('注册成功');    });  });module.exports = router;node_modules中netRequest/dbConnect.js

dbConnect.js

var mysql=require('mysql');// 现在只是练习可以直接为数据库创建链接,// 用户多时需要创建连接池function connectServer(){  var client=mysql.createConnection({    host:'172.16.20.103',    port:3308,    database:'test',    user:'JRJ_Win',    password:'FT%^$fjYR56'  })  return client;}function selectFun(client,username,callback){  client.query('select password from win.luck_user where username="'+username+'"',function(err,results,fields){    if(err) throw err;    callback(results);  });}function insertFun(client , username , password,callback){  client.query('insert into win.luck_user value(?,?)', [username, password], function(err,result){    if( err ){      console.log( "error:" + err.message);      return err;    }     callback(err);  });}exports.connect = connectServer;exports.selectFun = selectFun;exports.insertFun = insertFun;

剩下即为页面模板

login.ejs

<%- include header %>
<% if(locals.islogin) { %>

用户: <%= test %> 已经登陆。

退出登录 <% } else{ %>
<% } %>
<%- include footer %>

index.ejs

<%- include header %>
<% if(locals.islogin){%>

用户:<%= test %>

已经登陆 <% }else{%>

请登录后查看

<%}%>
<%- include footer %>

reg.ejs

<%- include header %>
<%- include footer %>

header.ejs

    Test            

footer.ejs

关于"node.js怎么实现网站登录注册功能"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"node.js怎么实现网站登录注册功能"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

很赞哦!
登录 用户 中间件 信息 文件 处理 数据 数据库 功能 网站 页面 密码 用户名 知识 入口 内容 对象 方法 日志 模板 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术有限公司经营范围大全 归档数据库如何设计 梅州数字软件开发批发价格 打印机驱动管理服务器 郑州net软件开发正规平台 网络安全法是以第号 2019重庆网络安全宣传周 网络安全技术及应用第三章答案 关于网络安全的团辅 战队服务器断开 sql语句加入多个数据库 微信软件开发方案 山西省能源局网络安全建设 lce服务器主管 微信小程序使用数据库 毕业实习手册计算机网络技术 软件开发需求个人工作总结 我的世界最新怎么在服务器刷物资 网络安全评估从漏洞到补丁 山东齐鲁大学网络安全学院官网 网络技术需求 无线网络显示网络安全风险 计算机网络技术前景如何 2020网络安全宣传周要求 氧气网络技术武汉公司机顶盒 手机版国际版我的世界服务器ip 广州微库通宝互联网科技 长春服务器回收公司地址 组态王与高版本数据库 不用电的网络安全检查

扫描关注千家信息网微信公众号,第一时间获取内容更新动态

转载请说明来源于"千家信息网"

本文地址:https://www.qianjiagd.com/a54939

0