const Koa = require("koa"); const app = new Koa(); const views = require("koa-views"); const router = require('koa-router'); const json = require("koa-json"); const onerror = require("koa-onerror"); const bodyparser = require("koa-bodyparser"); const logger = require("koa-logger"); const koajwt = require("koa-jwt"); const cors = require("koa2-cors"); const koaBody = require("koa-body"); const user = require("./routes/user"); const base = require("./routes/base"); const apicloud = require("./routes/apicloud"); const apiSDK = require("./routes/apiSDK"); const NewsOptionNoToken = require("./routes/NewsOptionNoToken"); const Dataapi = require("./routes/dataapi"); const tokenCheck = require("./utils/checkToken") const mysql = require("./utils/mysql_db"); var http = require("http"); var fs = require("fs"); var paths = require("path"); var querystring = require("querystring"); var apps = http.createServer(); apps.on("request", function (req, res) { console.log("+++++++++"); if ( (req.url === "/warnning/diskused" && req.method === "POST") || (req.url === "/warnning/memoryused" && req.method === "POST") ) { var data = ""; req.on("data", function (chunk) { data += chunk; }); req.on("end", function () { data = decodeURI(data); }); } console.log("+++++++++"); }); // apps.listen(4444, function () { // console.log("------------"); // console.log("ok"); // console.log("------------"); // }); // app.use( // koaBody({ // multipart: true, // // formidable: { // // maxFileSize: 200*1024*1024 // 设置上传文件大小最大限制,默认2M // // } // }) // ); // error handler onerror(app); // 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", // }) // ); /* 路由权限控制 */ app.use(koajwt({ secret: 'sxyd' }).unless({ // 设置login、register接口,可以不需要认证访问 path: [ /^\/api\/login/, /^\/api\/register/, /^((?!\/api).)*$/ // 设置除了私有接口外的其它资源,可以不需要认证访问 ] })); //app.use(tokenCheck()) // cors app.use( cors({ origin: "*", exposeHeaders: ["WWW-Authenticate", "Server-Authorization"], maxAge: 5, credentials: true, allowMethods: ["GET", "POST", "DELETE", "PUT"], allowHeaders: ["Content-Type", "Authorization", "Accept"], }) ); // logger const logsUtil = require("./utils/logs.js"); app.use(async (ctx, next) => { console.log("------------------------------"); console.log(ctx); console.log("------------------------------"); const start = new Date(); // 响应开始时间 let intervals; // 响应间隔时间 try { await next(); intervals = new Date() - start; //logsUtil.logResponse(ctx, intervals); //记录响应日志 } catch (error) { intervals = new Date() - start; logsUtil.logError(ctx, error, intervals); //记录异常日志 } }); const server = require("http").Server(app.callback()); const io = require("socket.io")(server); io.on("connection", (socket) => { console.log("初始化成功!下面可以用socket绑定事件和触发事件了"); // socket.on("send", (data) => { // console.log("客户端发送的内容:", data); // socket.emit("getMsg", "我是返回的消息... ..."); // }); // socket.emit("getMsg",msg); // socket.emit("getMsg", "我是初始化3s后的返回消息... ..."); }); setInterval(() => { io.sockets.emit("getMsg", "我是初始化5分钟后的返回消息... ..."); console.log("123") }, 3000000); server.listen(20214); const schedule_ = require("./models/taskSchedule.js"); schedule_.job_(); app.use(user.routes(), user.allowedMethods()); app.use(base.routes(), base.allowedMethods()); app.use(apicloud.routes(), apicloud.allowedMethods()); app.use(apiSDK.routes(), apiSDK.allowedMethods()); app.use(NewsOptionNoToken.routes(), NewsOptionNoToken.allowedMethods()); app.use(Dataapi.routes(), Dataapi.allowedMethods()); // error-handling app.on("error", (err, ctx) => { console.error("server error", err, ctx); }); module.exports = app;