koa2
koa-router
koa-router 提供了 .get、.post、.put 和 .del 接口來處理各類請求node
這裏按照MVC
的思想來組織代碼結構:數據庫
server ├── app.js ├── controller ├── middleware ├── package.json ├── package-lock.json └── router
固然仍是經典的hello world
。在controller文件下新建index.js
,寫入如下代碼:json
module.exports = { hello: async (ctx, next) => { ctx.response.body = 'Hello World' } }
增長一箇中間件來記錄響應時間,在middleware文件下新建index.js
,寫入如下代碼:瀏覽器
const logger = () => { return async (ctx, next) => { const start = Date.now() await next() const responseTime = (Date.now() - start) console.log(`響應時間爲: ${responseTime / 1000}s`) } } module.exports = (app) => { app.use(logger()) }
注意,中間件只能是函數。app
增長一個路由來試試,在router文件下新建index.js
,寫入如下代碼:koa
const router = require('koa-router')() module.exports = app => { router.get('/', Controller.hello) // 注意是在controller編寫的hello函數 }
const koa = require('koa') const app = new koa() const middleWare = require('./middleware') const router = require('./router') middleWare(app) router(app) app.listen(port, () => { console.log('server is running at http://localhost:3000') })
node app.js
而後打開瀏覽器,訪問http://localhost:3000
就能夠看到Hello World
了。async
至此,使用koa2
編寫接口的基本思路就說完了,通常都是在controller
對數據庫進行CRUD
,而後配置相關路由,就完成了一個接口服務的開發。函數