问题出现在请求拦截解析token的时候
如果出现两次给前端相应,就会报这个错误
请检查 app.all 与app.use是否同时调用
// 引入 express 框架
const express = require('express')
// 引入jsonwebtoken token工具
const jwt = require("jsonwebtoken");
// 登录路由
var Login = require('./pages/login/login')
// 博客路由
var Blog = require('./pages/blog/blog')
// 实例化 对象
const app = express()
// 端口3000
const port = 3000
// 路由 拦截
app.all('*', function(req, res, next) {
// 设置跨域
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Headers', 'Content-type');
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS,PATCH");
// res.header('Access-Control-Max-Age',1728000);//预请求缓存20天
let { url = '' } = req
// 不是登录页面 与 注册页面 就校验token
if(url.indexOf("/login") == -1 && url.indexOf("/register") == -1) {
if (!req.headers.authorization) {
return res.send ({
err: '无效token'
})
}else {
let token = req.headers.authorization; // 从Authorization中获取token
let secretOrPrivateKey="wobuzhidao"; // 这是加密的key(密钥)
jwt.verify(token, secretOrPrivateKey, (err, decode)=> {
if (err) { // 时间失效的时候 || 伪造的token
return res.send({status: -1})
} else {
next()
}
})
}
}else {
// 这里没有else 就会报错了
next();
}
});
app.use("/",Login)
app.use("/blog",Blog)
// Login(app);
// 监听端口
app.listen(port, () => console.log(`Example app listening on port ${port}!`))