代码拉取完成,页面将自动刷新
//app.js
const Koa = require("koa");
var bodyParser = require("koa-bodyparser");
const Cors = require("koa2-cors");
const app = new Koa();
const routers = require("./routes/index"); //导入routes导出的文件
const koaSwagger = require("koa2-swagger-ui");
const swagger = require("./routes/swagger");
app.use(swagger.routes(), swagger.allowedMethods());
//swagger配置
app.use(
//注意这里需要看koa2-swagger-ui的版本 不然会报koaSwagger不是一个函数等错误
koaSwagger({
routePrefix: "/swagger", // host at /swagger instead of default /docs
swaggerOptions: {
url: "/swagger.json", // example path to json
},
})
);
const redisClient = require("./redis/redis");
const whiteList = require("./utils/whiteList");
//接口是否需要登录
app.use(async (ctx, next) => {
let url = ctx.request.url;
let flag = false;
whiteList.map((res) => {
if (url.indexOf(res) !== -1) {
flag = true;
}
});
if (flag) {
await next();
} else {
if (ctx.header && ctx.header.token) {
const token = ctx.header.token;
if (token) {
try {
let exits = await redisClient.exists(token);
if (exits) {
//redis存在此token
await next();
} else {
return (ctx.body = {
code: 20001,
status: 200,
message: "token失效,请重新登录",
});
}
} catch (error) {
console.log("我是错误信息");
console.log(error);
console.log("我是错误信息");
}
} else {
//没有传token
return (ctx.body = {
code: 20001,
status: 200,
message: "用户未登录",
});
}
} else {
return (ctx.body = {
code: 20001,
status: 200,
message: "用户未登录",
});
}
}
});
app.use(Cors());
app.use(bodyParser());
app.use(routers.routes()).use(routers.allowedMethods());
// request.method可以获取请求方法。
// get,post或者其他类型(request对象被封在ctx内,所以也可以ctx.method获取)
app.use(async (ctx) => {
if (ctx.url === "/" && ctx.method === "POST") {
ctx.body = ctx.request.body;
} else {
// 其他请求显示404
ctx.body = "<h1>404!</h1>";
}
});
app.listen(3000);
console.log("服务器开启: http://localhost:3000/");
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。