Node.js连接Microsoft SQL Server数据库
SQL Server Management Studio相关设置
一、windows身份验证
当我们下载好SQL Server Management Studio,打开后会出现如下界面:
由于我进行过数据库连接,所以上面显示了两个“最近的连接”,一开始的话上面是空白的 此时默认是使用windows身份验证,直接点击“继续”建立连接
二、SQL Server身份验证 上面的操作确实连接到了数据库,但我们使用Node.js进行连接的时候,还需要设置用户名和密码,而通过上面的操作我们都不知道用户名和密码是什么,所以我们转换为 SQL Server身份验证,就是为了去设置用户名和密码,以便后续 Node.js 进行连接
如何进行转换:
上述操作完成后,重启SQL Server Management Studio,在Authentication处选择SQL Server身份验证,输入用户名和密码完整连接即可
Node.js进行连接
安装nodejs(用20以上的版本),使用nvm去安装,如下图所示
安装tedious(sqlserver的数据库驱动)
npm install tedious
const { Connection, Request } = require("tedious");
const dbConfig = {
authentication: {
options: {
userName: "sa", //数据库账号
password: "12345678" //数据库密码
},
type: "default"
},
server: "192.168.173.96", //本机ip
options: {
database: "MyDatabase1",
encrypt: true,
trustServerCertificate: true
}
};
const connection = new Connection(dbConfig);
// 尝试建立连接
connection.on('connect', err => {
if (err) {
console.error('连接错误:', err.message);
} else {
console.log('成功连接到数据库');
// 成功连接后执行查询
executeQuery();
}
});
connection.on('error', err => {
console.error('连接错误:', err.message);
});
// 执行查询
function executeQuery() {
const request = new Request(
"SELECT * FROM student", // 替换为你的查询语句
(err, rowCount) => {
if (err) {
console.error('执行查询时出错:', err.message);
} else {
console.log(`${rowCount} 行被返回`);
}
// 关闭连接
connection.close();
}
);
// 处理结果集
request.on('row', columns => {
columns.forEach(column => {
console.log(column.metadata.colName + ': ' + column.value);
});
});
// 执行请求
connection.execSql(request);
}
// 监听连接关闭事件
connection.on('end', () => {
console.log('数据库连接已关闭');
});
// 开始连接
connection.connect();