天天看點

koa2入門,使用koa-generator腳手架搭建項目

一、使用koa-generator腳手架搭建項目

官方文檔: https://www.npmjs.com/package/koa-generator

1.安裝腳手架

npm install -g koa-generator
           

2.初始化項目

koa2入門,使用koa-generator腳手架搭建項目

3.檢視建立的項目

koa2入門,使用koa-generator腳手架搭建項目

4.安裝cross-env

檢視package.json,可以看到架構已經自帶安裝了nodemon

koa2入門,使用koa-generator腳手架搭建項目

隻需要安裝corss-env

npm install --save-dev cross-env
           

然後将script的dev和prd啟動指令改成上面圖中的代碼就ok了

5.啟動

npm run dev
           
koa2入門,使用koa-generator腳手架搭建項目

至此。一個簡單的基本koa2項目就搭建起來了

二、session和redis的使用

推薦使用配套的koa-generic-session和koa-redis這兩個庫,koa-redis依賴于koa-generic-session使用

安裝

npm install koa-redis  koa-generic-session  --save
           

使用示例:在app.js中引入

const session = require('koa-generic-session')
const redisStore = require('koa-redis')
const { REDIS_CONF } = require('./config/db')   //連接配接redis的配置,端口号,host等

app.keys = ['keys']  //session加密key值數組
app.use(session({
  cookie: {     // 配置cookie
    key: 'blog',  //cookie name default: koa.sid
    path: '/',
    httpOnly: true,
    maxAge: 24 * 60 * 60 * 1000, //one day in ms,
    overwrite: true,
    signed: true
  },
  store: redisStore({    //redis存儲的時候具體的配置,具體可見koa-redis官網
    // Options specified here
    //     all: '127.0.0.1:6379' //default value
      all: `${REDIS_CONF.host}:${REDIS_CONF.port}`
      }
  )
}));
           

三、日志記錄

access log記錄,使用morgan

自定義日志使用console.log和console.error

安裝morgan

npm install --save koa-morgan
           

使用(跟express架構morgan的使用是一樣的)

const path = require('path')
const fs = require('fs')
const morgan = require('koa-morgan')

const ENV = process.env.NODE_ENV
if(ENV ==='dev') {// 開發環境記錄日志
  app.use(morgan('dev', {
    stream: process.stdout   //預設配置,日志的輸出流配置 //輸出到控制台上
  }));
} else {
// 日志将會記錄到logs下面的access.log中,是以要先建立logs檔案夾和access檔案
  const logFileName = path.join(__dirname, 'logs', 'access.log')  
  const writeStream = fs.createWriteStream(logFileName, {
    flags: 'a'
  })
  app.use(morgan('combined', {
    stream: writeStream  //寫入到對應的檔案中
  }))
}
           

繼續閱讀