千家信息网

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

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍了node.js怎么实现网站登录注册功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇node.js怎么实现网站登录注册功能文章都会有所收获,下面我们一起
千家信息网最后更新 2026年11月02日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安全错误 数据库的锁怎样保障安全 互联网科技垄断 智网互联网科技 互联网科技上市公司 互联网 视角下的科技创新 富国互联网科技创新基金 中盈科技互联网信息有限公司 现代互联网科技股 受益于互联网科技的高速发展 互联网5g黑科技有哪些 江苏互联网智能科技软件 广州有谷有贝互联网科技有限公司 互联网时代科技型公司的机会 广西科技产业互联网是什么 盐城市攀科互联网科技有限公司 陕西彩京云互联网科技有限公司 华人运通互联网科技公司 恒生科技互联网指数十大成分股 知域互联网科技有限公司官网 利用互联网等科技手段 互联网科技企业文化 南京欣网互联网络科技 互联网科技名片 重庆互联网络科技 与互联网科技公司 齐家互联网科技 米聚互联网科技南京有限公司排面 用友工业互联网科技发展 山东有哪些互联网科技公司 互联网金融科技元年 工业互联网科技成果转化

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

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

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

0