一、使用koa-generator腳手架搭建項目
官方文檔: https://www.npmjs.com/package/koa-generator
1.安裝腳手架
npm install -g koa-generator
2.初始化項目
3.檢視建立的項目
4.安裝cross-env
檢視package.json,可以看到架構已經自帶安裝了nodemon
隻需要安裝corss-env
npm install --save-dev cross-env
然後将script的dev和prd啟動指令改成上面圖中的代碼就ok了
5.啟動
npm run dev
至此。一個簡單的基本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 //寫入到對應的檔案中
}))
}