Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

【基础】Koa安装+路由+日志

初始化

  • 确认node版本是16及以上

    node -v
    
    • 否则需要nvm做切换
      nvm use 16
      
  • 新建目录

    • 比如~/project/koa_demo
  • 进入目录内

    • npm初始化项目
      npm init
      
    • 找到package.json文件,加入一行
      "type": "module",
      
      • 为了后面使用 es6的import写法
    • 检查有无入口文件index.js,没有就新建
      touch index.js
      

安装

  • koa相关模块

    npm i -S koa koa-router
    
    • koa 最新版本是 2.13.4
    • koa-router 最新版本是 10.1.1
  • 日志模块

    npm i -S log4js
    
    • 最新版本是6.3.0

最简单的代码(es6的import写法)

import Koa from 'koa';
import KoaRouter from "koa-router";
import log4js from "log4js";
log4js.configure('log4js-conf.json');

const app = new Koa();
const router = new KoaRouter();
const log = log4js.getLogger();

router.get("/", async ctx => {
    ctx.body = "index";
})

app.use(router.routes()).use(router.allowedMethods())

const port = 8060;
log.info("---------------------")
log.info(`server started at ${port}`)
log.info("---------------------")
app.listen(port);
  • 根目录下,新建log4js-conf.json文件,写入如下内容:

    {
        "appenders": {
            "dateFile": {
                "type": "dateFile",
                "layout": { "type": "colored" },
                "filename": "logs/app.log",
                "pattern": "yyyy-MM-dd",
                "compress": false,
                "daysToKeep": 30
            },
            "out": {
                "type": "stdout"
            }
        },
        "categories": {
            "default": {
                "appenders": ["dateFile", "out"],
                "level": "trace"
            }
        }
    }
    
    • 别忘记根目录下新建文件夹logs

      mkdir logs
      
    • 因为dateFile配置,最终log会被写到logs目录下的app.log文件中

    • 同时,也会因为out的配置,同步打印到终端

  • 访问localhost:8060就可以