ThinkJs 如何操作MSSQL数据库

本文介绍了如何在ThinkJS框架下操作MSSQL数据库。通过继承think.base并结合Sequelize ORM,实现了与ThinkJS原生数据库操作方法的兼容。详细步骤包括创建自定义模型类,实现add、update等方法,并确保链式调用的支持。代码已开源,方便开发者参考。
摘要由CSDN通过智能技术生成

ThinkJs(https://thinkjs.org/)是个非常不错的NodeJs的MVC开发框架,它本身提供了操作多种数据库的方法,但目前还不支持MSSQL数据库,而我在做开源项目CmPage(http://git.oschina.net/defans/cmpage)的时候,为了提高一点开发效率,觉得还是用熟悉一点的数据库较好,而且很多场景的数据处理用SQL语言的话可以很简练,因此问题就来了,在thinkjs中如何操作mssql 并且和 thinkjs 本身的数据库操作方法在一定程度上兼容呢?

网上查了一下,目前较好地用Promise方式来实现MSSQL连接的ORM框架是 Sequelize,虽然我没有用到ORM的特性,数据操作还是SQL语句拼接后用 query 方法执行,但难保以后不会改变主意,因此基本思路就有了: 从 think.base 继承类,然后加入 sequelize ,实现 think.model.base 的一些方法,如 add,update,where,find,select等等,为了可以链式调用,在 field 和 where 方法中返回自身(return this;),而为了实现子类中能够这样调用:this.model('t_emp').xxx,也实现了model方法,以上方法的实现逻辑很简单,就是定义一些成员变量表示SQL语句的各部分组成,比如:tableName,fields,_where,pk等;然后在相应方法中赋值后返回自身(this)。具体请参见代码: http://git.oschina.net/defans/cmpage/blob/master/src/cmpage/model/base.js?dir=0&filepath=src%2Fcmpage%2Fmodel%2Fbase.js&oid=10eba62a6f3ab3de95d3aeb8530a5fedc3ad518e&sha=10eb12139d697c1d4f25125e64966b029c2cf97e

如果以后 thinkjs 实现了mssql想换回来的话也很简单,把 page.js 改为从 think.model.base 继承就可以了。

还是在这里贴一下代码吧:

'use strict';
// +----------------------------------------------------------------------
// | CmPage [ 通用页面框架 ]
// +----------------------------------------------------------------------
// | Licensed under the Apache License, Version 2.0
// +----------------------------------------------------------------------
// | Author: defans <defans@sina.cn>
// +----------------------------------------------------------------------

/**
 @module cmpage.model
 */

/**
 * 业务模块的基类,通过ORM框架
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值