express下 tedious 连接SQL Server实例

参考链接
参考博客
Connection的参数:
server(host),
username,
password,
options,
a callback function.
是否加密:可以设置options: {encrypt: true/false}
Request的参数:
SQL statement,
a callback function


const { Connection, Request } = require("tedious");

const config = {
  authentication: {
    options: {
      userName: "填写登录名", // update me
      password: "填写登录密码" // update me
    },
    type: "default"
  },
  server: "localhost", // update me
  options: {
    database: "填写数据库名", //update me
    encrypt: false  //设置为true时会连接失败 Failed to connect to localhost:1433 - self signed certificate
  }
};

var connection = new Connection(config);

// 建立连接,验证通过执行Request
connection.on('connect', function(err) {
  if(err) {
    console.log('Error: ', err)
    throw err;
  }
  // If no error, then good to go...
  executeStatement();
});
 
// Initialize the connection.
connection.connect();

function executeStatement() {
  request = new Request("填写SQL语句", function(err, rowCount) {//rowCount是语句执行影响行数
     if (err) {
       console.log(err);
     } else {
       console.log(rowCount + ' rows');
     }
     connection.close() //关闭连接
   });
	
	//处理select返回的数据
	request.on('row', function(columns) {
	  columns.forEach(function(column) {
	    console.log(column.value);
	  });
	});
	//执行状态返回
	request.on('doneProc',function(r,m,status){
		//成功返回0,一般不会用到,在Request的回调判断err即可
		if(status)
			rows = request;
	});

	// In SQL Server 2000 you may need: connection.execSqlBatch(request);
	connection.execSql(request);
 }

测试 在控制台运行如下代码:(得先cd到对应目录)

node 文件名.js

封装的版本

参考博客

//mssql.js
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
// const { Connection, Request } = require("tedious");
const config = {
    authentication: {
        options: {
            userName: "登录名", // update me
            password: "密码" // update me
        },
        type: "default"
    },
    server: "localhost", // update me 服务地址
    options: {
        database: "mathdrill", //update me 数据库名
        encrypt: false  //设置为true时会连接失败 Failed to connect to localhost:1433 - self signed certificate
    }
}
exports.mssql = function () {
    this.connection = new Connection(config);

    this.query = function (str, callback) {          //执行查询  
        var connection = this.connection;
        var rows = {};
        connection.on('connect', function (err) {                 //连接数据库,执行匿名函数  
            if (err) {
                callback({ 'err': err['message'] + '请检查账号、密码是否正确,且数据库存在' });
            } else {
                var request = new Request(str, function (err, rowCount) {
                    if (err) err = { 'err': err['message'] };
                    callback(err, rows);
                    connection.close();
                });

                var n = 0;
                request.on('row', function (columns) {                            //查询成功数据返回  
                    rows[n] = {};
                    columns.forEach(function (column) {
                        rows[n][column.metadata.colName] = column.value;        //获取数据            
                    });
                    n++;
                });

                connection.execSql(request);                                 //执行sql语句  
            }
        });
    }
	//下行为必须添加
    this.connection.connect();
}
//test.js
 var mssql = require('./mssql.js');  

 var conn = new mssql.mssql();  
 conn.query('SQL语句', function(err,data){  
         if(!err){  
             console.log(data)       //成功返回数据  
         }
         else {  
             console.log(err)      //出错返回  
         }
     }
 ); 

测试node test.js , 成功会打印数据对象

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Node.js中连接SQL Server数据库有多种方法,其中一种常用的方法是使用mssql模块。可以使用以下代码来连接SQL Server数据库: ```javascript var sql = require('mssql'); var config = { user: 'sa', password: '123', server: 'localhost', database: 'QCode' }; sql.connect(config).then(function() { // 在这里执行数据库操作 }).catch(function(err) { // 处理连接错误 console.log(err); }); ``` 在上面的代码中,首先引入mssql模块,并配置数据库连接的相关信息。然后使用`sql.connect()`方法连接SQL Server数据库。连接成功后,可以在`.then()`回调函数中执行数据库操作,比如查询数据或插入数据等。如果连接失败,可以在`.catch()`回调函数中处理连接错误。 引用提供了一个示例代码,展示了如何使用mssql模块连接SQL Server数据库,并查询dbo.QCodeInfo表的前10条数据。可以根据自己的需求修改数据库配置和查询语句。 引用提供了有关Node.js连接SQL Server数据库的更详细的说明和实现技巧,可以参考该资料以获取更深入的了解。 另外,还可以使用其他模块如tedious、sequelize等来连接SQL Server数据库,具体的使用方法可以参考它们的文档和示例代码。 引用提供了一个提示,在新建的js文件中设置为Node.js的启动文件,并按F5执行程序。这是在VS Code中调试Node.js程序的常用方法,可以方便地查看程序的执行结果和调试错误。 总结起来,要在Node.js中连接SQL Server数据库,首先需要引入适当的模块,配置数据库连接信息,然后使用相应的方法建立连接,执行数据库操作。具体的实现方式可以根据自己的需求和喜好选择不同的模块和方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值