nodejs

1. 使用cookie保存用户登录状态

//引入cookie模块
var Cookies = require("cookies");
/*
	设置cookies
*/
app.use(function(req, res, next){
	req.cookies = new Cookies(req, res);
	//打印cookie
	//console.log(req.cookies.get("userInfo"));
	/*
		因为在各个路由中都需要判断用户是否登录,所以我们将数据挂载在req上
		解析登录用户的cookie信息
	*/
	req.userInfo = {};
	if(req.cookies.get("userInfo")){
		try{
			req.userInfo = JSON.parse(req.cookies.get("userInfo"));
		}catch(err){
			console.log(err);
		}
	}
	next();
})

//登录成功后,将数据发给前端页面,并且设置cookie

//用户名和密码正确
responseData.message = "登录成功";
//将登录信息返回前端页面
responseData.userInfo = {
	_id: userInfo._id,
	username: userInfo.username
}

//发送cookies给前端页面
req.cookies.set("userInfo", JSON.stringify({
	_id: userInfo._id,
	username: userInfo.username
}))


res.json(responseData);
return;

//在routers/main.js中将各个数据分配给各个模板

var express = require("express");
var router = express.Router();

//这里不需要些/admin/user,因为前面已经处理过了
router.get("/", function(req, res, next){
	// res.send("首页");
	//加载index.html
	console.log(req.userInfo._id)

	//在这里将用户数据分配给各个模板
	res.render("main/index", {
		userInfo: req.userInfo
	});
})

module.exports = router;
//现在可以在前端页面views/main/index.html中编写判断逻辑
/*{% if userInfo._id %}
{% else %}
{% endif %}*/
//我们在 public/js/index.js处理退出按钮的逻辑

//退出
	$("#logoutBtn").on("click", function(){
		$.ajax({
			url: "/api/user/logout",
			success: function(result){
				if(!result.code){
					//重载页面
					window.location.reload();
				}
			},
			error: function(err){
				console.log("退出错误:" + err);
			}
		})
	})
//编写点击退出按钮以后的路由操作 routers/api.js

/*
	退出
*/
router.get("/user/logout", function(req, res){
	//将cookie清除掉
	req.cookies.set("userInfo", null);
	res.json(responseData);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值