代码拉取完成,页面将自动刷新
const Koa = require('koa');
const app = new Koa();
const views = require('koa-views');
const json = require('koa-json');
const onerror = require('koa-onerror');
const bodyparser = require('koa-bodyparser');
const logger = require('koa-logger');
const session = require('koa-generic-session');
const redisStore = require('koa-redis');
const { redis_conf } = require('./conf/db_config');
const cors = require('koa2-cors');
const crawlerRouter = require('./routes/crawler');
const indexRouter = require('./routes/index');
const adminRouter = require('./routes/admin');
const { redisInfo, corsOrigin } = require('./conf/conf');
// error handler
onerror(app);
// 使用koa2-cors中间件
app.use(
cors({
origin: function (ctx) {
return corsOrigin;
},
// 它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中
credentials: true,
})
);
// middlewares
app.use(
bodyparser({
enableTypes: ['json', 'form', 'text'],
})
);
app.use(json());
app.use(logger());
app.use(require('koa-static')(__dirname + '/public'));
app.use(
views(__dirname + '/views', {
extension: 'pug',
})
);
// 设置一下加密cookie的key
app.keys = ['n1i@c#l$i%a^'];
// 引入session中间件
app.use(
session({
key: 'cat.sid', // cookie的name
prefix: 'cat.sess', // redis key 的前缀
// 设置cookie配置
cookie: {
path: '/', // 作用于全局,根目录
httpOnly: true, // 禁止修改
maxAge: 24 * 60 * 60 * 1000, // 设置过期时间
},
store: redisStore(redisInfo),
})
);
// logger
app.use(async (ctx, next) => {
const start = new Date();
await next();
const ms = new Date() - start;
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
});
// routes
app.use(indexRouter.routes(), indexRouter.allowedMethods());
app.use(crawlerRouter.routes(), crawlerRouter.allowedMethods());
app.use(adminRouter.routes(), adminRouter.allowedMethods());
// error-handling
app.on('error', (err, ctx) => {
console.error('server error', err, ctx);
});
module.exports = app;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。