node.js + mssql 简易封装操作
时间吧,总是这么凑巧,在我学习【node.js】还没几天,我的 Microsoft SQL Server Management Studio 18 就歇菜了,至于怎么歇菜的吧....它可能的意思就是想让我换电脑了... 所以为了解决问题,就写了这个小东西满足需求;
....咳咳咳....
回归正题,开始最简易的封装数据操作。
首先老样子,先安装:
安装方法
npm install mssql
引入依赖
///引入依赖
const mssql = require('mssql');
配置Config

其实这里的config,和后端程序配置的web.config基本是一个意思。(可忽略 0.0)

code:
///引入依赖
const mssql = require('mssql'); //方法对象
const units = {
sql: function (sql, callback) {
///连接池
new mssql.ConnectionPool(units.config())
.connect()
.then(pool => {
let ps = new mssql.PreparedStatement(pool);
ps.prepare(sql, err => {
if (err) {
console.log(err);
return;
}
ps.execute('', (err, result) => {
if (err) {
console.log(err);
return;
}
ps.unprepare(err => {
if (err) {
console.log(err);
callback(err, null);
return;
}
callback(err, result);
});
});
});
}).catch(err => {
console.log("Database Connection Failed! Bad Config:", err);
});
},
/*
* 默认config对象
* @type {{user: string, password: string, server: string, database: string, pool: {min: number, idleTimeoutMillis: number}}}
*/
config: function () {
return {
user: 'sa', //SQL Server 的登录名
password: '', //SQL Server 的登录密码
server: 'localhost', //SQL Server 的地址
database: 'sale', //数据库名称
port: , //端口号,默认为1433
pool: {
min: , //连接池最小连接数,默认0
max: , //连接池最大连接数,默认10
idleTimeoutMillis: //设置关闭未使用连接的时间,单位ms默认30000
},
/*--其他属性--*/
// connectionTimeout: //连接timeout,单位ms 默认 15000
// requestTimeout: //请求timeout,单位ms默认15000
// parseJSON: //将json数据集转化成json obj
}
}
} module.exports = units;
此上面这段代码就可以封装为一个命名为:helper.js(名字随意)。
然后就可以在其他的js里面来调用这个封装好的‘方法’:
const helper = require('./helper');
接下来就是写最基本的 参数化 批量:insert丶select丶update 丶delete :
const helper = require('./helper');
/*
* 查询所有
* @param tableName
* @param result
*/
helper.sql('select * from dbo.tableName where 1 = 1', function (err, result) {
if (err) {
console.log(err);
return;
}
console.log('data :', result);
});
/*
* 修改
* @param updateObj 修改内容(必填)
* @param whereObj 修改对象(必填)
* @param tableName 表名
* @param callBack(err,recordset)
*/
helper.sql("update dbo.tableName set name = @updateObj where id = @whereObj", err => {
if (err) {
console.log("error:" + err);
return;
} else {
console.log('Ok!');
}
});
/*
* 添加
* @param addObj 添加对象(必填)
* @param tableName 表名
* @param callBack(err,recordset)
*/
helper.sql("insert into dbo.tableName(obj)values(@addObj)", err => {
if (err) {
console.log("error:" + err);
} else {
console.log("Ok!");
}
})
/*
* 删除
* @param whereObj 删除对象(必填)
* @param tableName 表名
* @param callBack(err,recordset)
*/
helper.sql("delete dbo.tableName where 1 = 1 and id = @whereObj", err => {
if (err) {
console.log("error:" + err);
} else {
console.log("Ok!");
}
})
以上就实现了 最简易的node.js + mssql的使用。
越努力,越幸运。
node.js + mssql 简易封装操作的更多相关文章
- 使用Node.js实现简易MVC框架
在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...
- [转] 使用Node.js实现简易MVC框架
在使用Node.js搭建静态资源服务器一文中我们完成了服务器对静态资源请求的处理,但并未涉及动态请求,目前还无法根据客户端发出的不同请求而返回个性化的内容.单靠静态资源岂能撑得起这些复杂的网站应用,本 ...
- node.js 开发简易的小爬虫
node.js 开发简易的小爬虫 最近公司开发一款医药类的软件,所以需要一些药品的基础数据,所以本人就用node.js写一个简易的小爬虫,并写记录这个Demo以供大家参考. 一.开发前的准备: 1, ...
- [js高手之路]Node.js实现简易的爬虫-抓取博客文章列表信息
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的http库 ...
- [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息
抓取目标:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要实现的功能: 抓取博客所有的文章标题,超链接,文章摘要,发布时间 需要用到的库: node.js自带的h ...
- 《基于Node.js实现简易聊天室系列之总结》
前前后后完成这个聊天室的Demo花了大概一个星期,当然一个星期是仅仅指编码的工作.前期的知识储备是从0到1从无到有,花费了一定的时间熟悉Node.js的基本语法以及Node.js和mongoDB之间的 ...
- 《基于Node.js实现简易聊天室系列之详细设计》
一个完整的项目基本分为三个部分:前端.后台和数据库.依照软件工程的理论知识,应该依次按照以下几个步骤:需求分析.概要设计.详细设计.编码.测试等.由于缺乏相关知识的储备,导致这个Demo系列的文章层次 ...
- 《基于Node.js实现简易聊天室系列之引言》
简述:这个聊天室是基于Node.js实现的,完成了基本的实时通信功能.在此之前,对node.js和mongodb一无所知,但是通过翻阅博客,自己动手基本达到了预期的效果.技术,不应该是闭门造车,而是学 ...
- Node.js实现简易的获取access_token
还是老样子,在自学node.js的道路上走得坑坑洼洼,按住了躁动的自己,调整好心情 ,ready........Go....! 首先在项目里新建config.json,其中 appid 与 appsc ...
随机推荐
- android延时处理任务范例
今天要做一个任务,要求图片做button开关,点击出发对应事件.点击打开,图片左边显示几行字体,这几行字体是延时显示的.以下将主要代码附上.以下是main.xml <?xml version=& ...
- arcserver开发小结(二)
一.关于服务器上下文 1,服务器上下文(ServerContext)本质上是一个GIS服务器上的进程,它是服务器端编程的起点. 2,只有本地资源才能得到服务器上下文,通常得到服务器上下文的主线是: M ...
- 字符串匹配:从机器到后缀自己主动KMP
后缀自己主动机(sam)对字符串匹配 ==== 我们已经配置了一个相对较短的模式字符串sam. 为P="abcabcacab", T[1..i]后缀.因此,它是sam最长前缀长度: ...
- 汉顺平html5课程分享:6小时制作经典的坦克大战!
记起自己去年參加的一次面试,在做过Java多年的面试官面前发挥的并不好,但他一听说我会html5,立刻眼睛发亮.无论不顾的想要和我签约.. .所以.如今为工作犯愁的朋友们,学好html5,绝对会为你找 ...
- WPF BorderBrush BorderThickness
基本上所有的控件都可以设置BorderBrush BorderThickness 例如TextBox,Button
- 图像滤镜艺术---Wave滤镜
原文:图像滤镜艺术---Wave滤镜 Wave Filter水波滤镜 水波滤镜是通过坐标变换来模拟水波效果,使图像呈现出水波的特效.这个滤镜有一个可调参数:水波的扭曲程度. 代码如下; // ...
- 微信小程序把玩(六)模块化
原文:微信小程序把玩(六)模块化 模块化也就是将一些通用的东西抽出来放到一个文件中,通过module.exports去暴露接口.我们在最初新建项目时就有个util.js文件就是被模块化处理时间的 /* ...
- /etc/passwd和/etc/group文件详解
用户管理 想要知道, 系统中有哪些用户, 可以查看这个文件: /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nolo ...
- C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。
原文:C#图片灰度处理(位深度24→位深度8) #region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> ...
- 中国自主X86处理器工艺跃进:国产28nm升级16nm(上海兆芯)
提到X86处理器,世人皆知Intel.AMD,殊不知还有个VIA(威盛),在Intel反垄断世纪大战中VIA公司作为Intel霸权的受害者也最终确认了X86授权,不过VIA与前面两家的实力相差太远,X ...