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;
|