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 ...
随机推荐
- JQuery在一个简单的表单验证的例子
html代码例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- OnNavigatedTo 和 Loaded 的比较
直接上结果: OnNavigateTo :是在导航完成,在控件或者页面加载前(之间)调用. Loaded :是在页面准备好并且在控件加载完成后调用. 参考资料: 1.https://stackover ...
- MySql 5.7 重置root密码
一.以安全模式登录 # Stop MySQL sudo service mysql stop # Make MySQL service directory. sudo mkdir -p /var/ru ...
- SICP 1.29-1.33
1.29 (define (sum term a next b) (if (> a b) (+ (term a) (sum term (next a) next b)))) (define (c ...
- iOS NSString追加字符串的方法
第一种: NSArray *array = [NSArray arrayWithObjects:@"Hello",@" ",@"world" ...
- memcached的使用一
1.安装memcached 需要一个memcache.exe文件,打开cmd窗口,切换到可执行文件目录,执行memcache -的install命令. 2.连接服务 做测试可以打开电脑的telnet ...
- easyui在IE中: SCRIPT1003: 缺少 ':'
- 程序跳过UAC研究及实现思路(两种方法,现在可能都不行了)
网上很对跳过UAC资料都是说如果让UAC弹出窗体,并没有真正跳过弹窗,这里结合动态提权+计划任务实现真正意义上的跳过UAC弹窗,运行程序的时候可以不出现UAC窗体,并且程序还是以高权限运行. vist ...
- 快速开发平台 WebBuilder 8.6发布
WebBuilder下载:http://www.geejing.com/download.html WebBuilder快速开发平台是基于Web面向服务的应用系统开发平台,可以方便快捷的搭建各类型企业 ...
- 你真的懂printf么?
自从你进入程序员的世界,就开始照着书本编写着各种helloworld,大笔一挥: printf("Hello World!\n"); 于是控制台神奇地出现了一行字符串,计算机一句温 ...