nodejs登录系统控制静态页面跳转

要快速做一个演示系统,由于后台缺乏,想自己用nodejs搭建.
虽然都是静态页面,但是要完成登录功能(无需注册,可以直接数据库分配密码),登录之后才能跳转到页面首页,若未登录而直接输入首页路径,则跳转到登录页面.
由于是小白不太会弄.请各位帮忙指引方向,怎么能快速完成

阅读 8.4k
3 个回答

可以使用express的session,然后写一个checkLogin的方法对!req.session.user是否登录进行判断。然后再写一份checkNoLogin的方法然后对req.session.user进行判断。

html我就不给你写了,基础的表单内容
js的ajax请求:

$("#userLogin").click(function(){
        $.ajax({
          url: "/login",
          type: "GET",
          data: {
              username: $("#email-one").val(),    //    用户名和密码
              password: $("#password-one").val()
          },
          success: function(data){
              if(data.status==1){
              window.location.href='index.html';    //    请求成功后到你的主页
              }else{
                  alert(data.msg);
              }
                  
          },
          error: function(){
            layer.msg('访问失败', hint);
          }
      });
    });

下面的代码如果看不懂的话,可以参考https://segmentfault.com/a/11...

var express=require("express");
var events = require('events');
var app=express();
var session=require("session");
var path=require("path");
var mysql=require("mysql");
var dirname=__dirname;
app.use(express.static(path.join(__dirname, 'project')));
app.get("/login",function(req,res){
    //    连接数据库
    var connection=mysql.createConnection({
        host:"localhost",
        user:"root",
        password:"数据库密码",
        database:"node"
    });
    connection.connect();
    var sql="select * from user where username='"+req.query.username+"' and password='"+req.query.password+"'";
    connection.query(sql,function(err,result){
        if(err){
            res.end("登陆失败");
        }
        if(result.length==0){
            res.json({status:0,msg:“用户名或密码不正确”});
        }else{
            req.session.user=req.query.username;
            req.session.isLogin=true;
            res.json({status:1,msg:“登录成功”});
        }
    })
    connection.end();
})
app.listen(8081);

后面页面的访问必须有session信息,你可以在每个页面向后台发出请求。然后你用node检测session内容,ajax再做出动作。大概的思路的这样,我也是小白,希望可以帮到你。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题