最近工作中要用到node操作mysql,没有使用orm。 因为受java影响,原本一开始准备写一个dao层,写了一段时间之后发现表连接的情况出现得太多,用dao并不能很方便的组织数据。 于是又改为直接写sql查询数据,然后根据接口封装数据,这其中又使用到async的一些操作集合的接口。 整体下来就有这样的感觉,写出来的代码结构性很差,不易读,代码无法复用。 不知道各位怎么看待这个问题?
用ruby的 active record吧,合适的东西做合适的活
估计像我一样是为了体验新味道而掉进坑的。nidejs因为回调的原因,很多业务处理方式不如传统的代码结构优美。你或者不必太纠结,或者习惯这种新常态,另外dao既然有就已经超越百分之八十的nodejs开发者了
//select->insert->update
db.query(query, handleSelect);
function handleSelect(err, results){
db.query(query, handleInsert);
}
function handleInsert(err, results) {
db.query(query, handleUpdate);
}
function handleUpdate(err, results) {
//next
}
自己的常用写法
用mysql为什么不能用orm框架?orm2这个就挺不错
说白了还是在吐槽 callback hell ! 试试co吧
@qingtiandalaoye 我不认为dao是必须存在的东西,这就好像在说: “你看,我用了24种设计模式,你才用了一种,我超越你了!”
sequelize也不错
Node 的几个流行 ORM 看似美好,其实暗藏了 N 多坑。
我不认为 DAO 是必须存在的东西,这就好像在说: “你看,我用了24种设计模式,你才用了一种,我超越你了!”
非常赞同这句话。并且不知道为什么我宁愿叫它 Model 层也不愿意叫它 DAO。