不可以进的页面或功能:发布、评论、私信、收藏,如果未登录进入这些功能则会有提示。
根据返回的status进行判断
这里说一下路由拦截必须放在其他路由之前,也就是在app.js里必须放在引用其他几个路由之前
//路由拦截
app.use(function (req,res,next) {
if(req.session.user){
next();
}else{
console.log("url:"+req.url);
//定义可访问的接口
if(req.originalUrl=='/users/login' || req.originalUrl=='/users/logout' || req.originalUrl=='/users/register' || req.originalUrl.indexOf('/goods/list')>-1){
next();
}else{
res.json({
status:'10001',
msg:'当前未登录',
result:''
});
}
}
});
//要放在这两个路由引用前面才能生效
app.use('/users', users);
app.use('/articles', articles);
这样的话如果请求非这些接口数据统统都会返回100001,未登录,这样前端可以通过判断返回值决定如何显示页面。
比如如果要点击留言,直接判断返回值即可
submit(){
if(this.remark==''){
this.$message({
showClose:true,
message:'输入不可以为空!',
type:'error'
})
}else{
var date = new Date();
var min;
var sec;
//格式化发布日期,形如2018.6.5 13:13:13
if(date.getMinutes()>=0 && date.getMinutes()<=9)min='0'+date.getMinutes();
else{min=date.getMinutes()}
if(date.getSeconds()>=0 && date.getSeconds()<=9)sec='0'+date.getSeconds();
else{sec=date.getSeconds()}
axios.post('/articles/comment',{
date:date.getFullYear()+'.'+(date.getMonth()+1)+'.'+date.getDate()+' '+date.getHours()+':'+min+':'+sec,
remark:this.remark,
articleId:this.$route.query.id,
commentToWhom:(this.remark.split(':')[0]).split(' ')[0]=='回复给'?(this.remark.split(':')[0]).split(' ')[1].trim():'',
articleOwnerId:this.articleDetails.articleOwnerId
}).then((response)=>{
let res = response.data;
if(res.status=='2'||res.status=='3'){
this.$message({
showClose:true,
message:'success',
type:'success'
})
this.remark=''
this.getComments()
}else if(res.status=='10001'){
this.$message({
showClose:true,
message:'请先登录哦',
type:'error'
})
}else{
this.$message({
showClose:true,
message:'啊哦,发生了错误',
type:'error'
})
}
})
}
},