网页中flash数据抓取(主路由routes成功与否的提示信息下载依赖模块的操作方法 )
优采云 发布时间: 2022-02-14 14:34网页中flash数据抓取(主路由routes成功与否的提示信息下载依赖模块的操作方法
)
一、简介
目前的注册功能可以成功的将数据存入数据库,但是我们要实现的是一个后台管理系统,将前端所需的数据登录、注册和存入数据库,所以对于注册来说,需要的功能是登录是必须有获取数据库中的数据和页面跳转的基本功能。
二、获取数据 - 承诺
添加数据时,设置如果添加成功,则返回添加的数据。
function reg(params) {//注册时添加数据的方法
return new Promise((resolve,reject)=>{//resolve 成功之后的回调 reject 失败的回调
adminModel.create(params,(err,data)=>{
if(err){
reject({//添加失败返回的数据
errno:500,
msg:'数据库错误',
data:null
})
}else{
resolve({//添加成功返回的数据
errno:0,
msg:'OK',
data:data
})
}
})
})
};
在注册的post操作中调用添加注解数据的reg方法后,使用.then方法获取promise返回的数据
adminModel.reg(postData).then((data)=>{
console.log(data);//输出获取到的数据
})
注意:现在是对注册的数据进行操作,所以后面的所有操作都是在regPost方法中进行的
三、页面跳转
获取到数据后,可以通过判断返回的错误码来确定要跳转的页面。
adminModel.reg(postData).then((data)=>{
console.log(data);
if(!data.errno){
res.redirect('/login');//注册成功之后重定向到登录页面
}else{
res.redirect('/reg');//不成功就还是在当前注册页面
}
})
四、跳转成功与否的提示信息
下载依赖模块:
npm install connect-flash --save
在项目调用中:
var flash = require('connect-flash');//引入模块
//这个模块是依赖于session 所以必须在session下面使用
app.usr(flash());
这样这个模块的方法就可以全局使用了,但是注意这个提示信息是在点击注册按钮之后,然后提示操作是否成功,所以经过一系列的操作,最终进入入口文件,所以在主路由 routes 上面截取的数据成功与否
app.use((req,res,next)=>{
res.locals.success = req.flash('success');
res.locals.error = req.flash('error');
console.log(res.locals.success,res.locals.error);
next();
})
然后在所有跳转操作完成后,通过主路由获取获取是否成功的提示信息:
adminModel.reg(postData).then((data)=>{
if(!data.errno){
req.flash('success',data.msg)//传两个参数时是 给success存值
res.redirect('/login');
}else{
req.flash('error',data.msg);
res.redirect('/reg');
}
})
注意:这种方式带来的数据只是为了记录上次操作的状态,所以只会存在一次,也就是刷新后数据就没有了。
现在有一个成功或失败的提示字段,然后会渲染到页面,因为它不仅仅用于注册,所以封装在一个单独的文件夹中:
//封装的提示信息
然后在使用它的页面上调用它:
添加渲染: