/**
* 代理服务器 natapp -authtoken f1bdaa0535788971
* 热部署指令 supervisor index
*/
const Koa = require('koa')
const koaStatic = require('koa-static')
const bodyParser = require('koa-bodyparser')
const autoRouter = require('./util/koa-automate-router')
const log4jsUtil = require('./util/log4js-util')
/**
* 实例化 KOA 服务器,载入三方中间件到服务器实例
* POST 参数解析功能 ctx.request.body.key 获取
*/
const app = new Koa();
app.use(bodyParser());
app.listen(80, function () { console.log("服务器启动成功") });
/**
* 将项目根路径载入到 KOA 实例中,方便其它目录下访问跟路径 ctx.rootPath = __dirname
* 允许跨域访问 ctx.res.setHeader('Access-Control-Allow-Origin', '*')
* 客户端访问IP ctx.req.headers['x-forwarded-for'] || ctx.req.connection.remoteAddress
*/
const notesLog = log4jsUtil.notesLog;
const errorLog = log4jsUtil.errorLog;
app.use(async (ctx, next) => {
try {
ctx.rootPath = __dirname;
ctx.res.setHeader('Access-Control-Allow-Origin', '*');
let clientIp = ctx.req.headers['x-forwarded-for'] || ctx.req.connection.remoteAddress;
let notes = '[' + clientIp + ']'
notes += ' [' + ctx.request.method + ']';
notes += ' [' + ctx.request.url.split("?")[0] + ']';
notesLog.info(notes);
await next();
} catch (err) {
errorLog.error(err.stack);
ctx.body = { code: 0, info: err.stack };
}
});
/**
* 配置自动化路由和静态资源目录,支持绝对和相对路径,推荐使用 __dirname 拼接
* 目录可以是多个,如果出现相同的,先配置的优先级高
*/
autoRouter(__dirname + "/router", app);
app.use(koaStatic("E:/project/GitH5"));
 

最新文章

  1. SQL Server 事务以及事务日志综述
  2. 需要熟记的git命令
  3. 转:what is TWO_TASK
  4. 394. Coins in a Line
  5. July 【补题】
  6. js调用打印机
  7. wampserver图标黄色
  8. sitemap制作
  9. ExtJs 思维导图
  10. ccache - 让Xcode编译速度飞起来
  11. [转载]Python实现浏览器自动化操作
  12. Gate One——用web展示Terminal(安装)
  13. Java高级特性之枚举
  14. [十二]JavaIO之BufferedInputStream BufferedOutputStream
  15. 使用Postfix与Dovecot部署邮件系统
  16. Luogu4745/Gym101620G CERC2017 Gambling Guide 期望、DP、最短路
  17. Linux远程访问及控制(SSH)
  18. mybatis批量插入和批量更新
  19. IOS中的三大事件
  20. 一篇关于蓝牙SDP和L2CAP协议的文章

热门文章

  1. 转载 - Python里面关于 模块 和 包 和 __init__.py 的一些事
  2. 时间插件,js格式化,js某月天数,js某月最后一天日期
  3. JobHistory搜索智能化
  4. 推荐美丽的flash网页MP3音乐播放器
  5. python编程(基于twisted的client编程)
  6. Mysql 存储引擎中InnoDB与MyISAM差别(网络整理)
  7. sqlserver 触发器实例代码
  8. js如何获取某id的子标签
  9. bzoj2142 礼物——扩展卢卡斯定理
  10. discuz的全局变量