Node.js运用mssql模块链接SQL Server数据库

现在数据库的类型越来越多,比如node.js经常使用的MySQL,mongdb等,由于之前经常用SQL Server数据库,所以打算做一个node链接SQL Server的demo,网上找了很多方法,查到了好几个方法比如node-sqlserver模块和msnodesql 模块,但这两者对环境的要求比较高,感觉很麻烦,继续百度到了mssql模块,还是挺简单的。

(1)安装mssql模块

npm install mssql 

(2)数据库连接,数据库封装   创建mssqldb.js

 

/* 链接sql数据库 */
var mssql = require('mssql')
var mssqldb = {}
var config = {
  user: 'sa',
  password: '密码',
  server: '服务器',
  port: 1433,
  driver: 'msnodesql',
  database: '数据库名称',
  options: {
    encrypt: false // 是否加密,本地为false, 部署后为true
  },
  pool: {
    min: 0,
    max: 10,
    idleTimeoutMillis: 3000
  }
}
// 数据库封装
mssqldb.sql = function(sql, callBack) {
  var connection = new mssql.ConnectionPool(config, function(err) {
    if (err) {
      console.log(err)
      return
    }
    var ps = new mssql.PreparedStatement(connection)
    ps.prepare(sql, function(err) {
      if (err) {
        console.log(err)
        return
      }
      ps.execute('', function(err, result) {
        if (err) {
          console.log(err)
          return
        }

        ps.unprepare(function(err) {
          if (err) {
            console.log(err)
            callback(err, null)
            return
          }
          callBack(err, result)
        })
      })
    })
  })
}

module.exports = mssqldb

(3)写接口

var express = require('express')
var router = express.Router()
var mssqldb = require('../../utils/mssqldb')

/* GET users listing. */
router.get('/', function(req, res, next) {
  var arr = []
  mssqldb.sql('select * from MENU', function(err, result) {
    if (err) {
      console.log(err)
      return
    }
    let response = {
      status: 200,
      message: '成功',
      returnValue: result.returnValue,
      data: result.recordsets[0]
    }
    return res.send(response)
    return next()
  })
})

module.exports = router

 

  (4)数据库

 (5)接口返回

 

 

 



 

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值