koa物件導向式程式設計

2021-08-24 18:11:30 字數 3449 閱讀 4497

最近由於在用egg.js,所以十分羨慕它裡面物件導向的邏輯,

自己參照著簡單封裝了乙個物件導向的koa2-node的 寫法

封裝思想,將一些基礎的方法(list, insert, update, delete)封裝至乙個父類(基類),子類繼承它便可以獲得對應的方法

const model = require('../model') // 獲取基本路由

// 模組匯出

}

module.exports =
// 使用koa-router middleware

const router = require('koa-router')()

​// 獲取對應的service層

const services =

// 配置所有的routes檔案

const routes = (config => `) // 獲取對應個單個檔案 admin.js etc..

const newarr = object.keys(obj).reduce((total, each) =>

let item = /$`, method: obj[each].method, action: each, service: name }

total.push(item)

return total

}, )

copy = copy.concat(newarr)

return copy

}, )

})(object.keys(services))

​// 配置最終的路由,形式為

// router.get(url, service.action)

​routes.foreach(item => = item

const service = services[servicename]

router[method](path, service[action])

})module.exports = router

service層

對請求引數的操作層

對返回資料的加工層

controller層

對資料庫的操作層

helper類

enum列舉

lib/mysql.js

const mysql = require('mysql');

const config = require('../config/default.js')

​// 連線池

const pool  = mysql.createpool();

​/**

* * @param sql 接收的sql語句

* @param values sql語句引數

* @return

*/const query = function( sql, values ) )

} else )

} else )

}connection.release()})}

})})

}module.exports=

config

config/default.js

const config = }​

module.exports = config

src/index.js

var koa=require('koa');

var path=require('path')

var bodyparser = require('koa-bodyparser');

var session = require('koa-session-minimal');

var mysqlstore = require('koa-mysql-session');

var config = require('./config/default.js');

var koastatic = require('koa-static')

const routers = require('./routes/index')

// session儲存配置

const sessionmysqlconfig=

// 配置session中介軟體

key: 'user_sid',

store: new mysqlstore(sessionmysqlconfig)

}))// 配置跨域

});// 配置靜態資源載入中介軟體

path.join(__dirname , './public')

))// 使用表單解析中介軟體

// 使用新建的路由檔案

// 監聽在1200

console.log(`listening on port $`)

到這裡專案就可以完整跑起來了,

最後奉上專案位址

喜歡就star一下吧~

函式式程式設計vs物件導向程式設計

什麼是物件導向,其實我也不是很懂,我以前一直認為物件導向就是繼承,而繼承就是虛函式,有時候在思考,真的是這樣子的嗎?錯了,不管虛函式的機制是為了繼承和多型而服務,而繼承和多型確實為了oo的思想而服務,怎麼說呢?我們都知道,當我們都知道學生a,b,c,d 都是學生,並且他們有一些共同的屬性,比如年齡,...

函式式程式設計 vs 物件導向程式設計

身為乙個程式設計師,我個人很喜歡早洗澡的時候去思考一些技術上的東西,今天有人問我什麼是物件導向,其實我也不是很懂,我以前一直認為物件導向就是繼承,而繼承就是虛函式,但是我洗澡的時候在思考,真的是這樣子的嗎?錯了,不管虛函式的機制是為了繼承和多型而服務,而繼承和多型確實為了oo的思想而服務,怎麼說呢?...

物件導向程式設計 繼承 類式繼承

定義 讓子類的原型指向父類的例項 1,宣告父類 function superclass superclass.prototype.getsupervalue function 2,宣告子類 function subclass 3,繼承父類 關鍵 subclass.prototype new supe...