【SQL server】NodeJs 服务器连接数据库

这篇具有很好参考价值的文章主要介绍了【SQL server】NodeJs 服务器连接数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

有客户需求可以查看生产数据,而 CS 端的 Web 程序运行存在部分问题,Web 客户端只是显示生产数据,其他功能没有用到,因此为了可以快速开发以及更加方便的操作,减低客户成本,为此采用 node 直连数据库的方式来获取生产数据。

基本思路

Vue3来快速设计生产看板,实时数据的获取利用 Node 服务器来直接与数据库打交道,选用官网推荐的 tedious 模块来获取连接。

部署服务端

大家都知道 Vue3 客户端项目是无法直接操作数据库的,因此需要利用 NodeJs 来搭建一个建议版本的服务器,快捷又便捷,果然技术都是为了业务而服务的。

先决条件

  • Node.js

我个人喜欢使用 nvm 来管理 Node.js ,因为它允许电脑拥有多个版本的 Node.js ,只需要使用 nvm use <version> 来切换版本就可以啦。

下载依赖包我个人喜欢使用 pnpm 来下载依赖包,使用 npm install -g pnpm 就可以全局使用 pnpm 命令了,尽管它前段时间服务器崩溃了一次,也不影响我对其的热爱。

配置用于 Node.js 开发的开发环境

选择一个空目录作为项目服务端的目录,或者直接把服务端和客户端放在同一个目录也可以,然后创建 Node 项目:

pnpm init

创建后,会生成一个 package.json 文件,在项目中安装 tedious 模块:

pnpm install tedious

使用 Node.js 连接到 SQL 的概念证明

创建连接之前,需要确保电脑有 SQL server 的驱动。

创建连接

利用 Connection 类来配置 SQL 数据库连接:

const Connection = require('tedious').Connection;
const SqlConfig = {
	// 数据库地址
    server: '127.0.0.1',
    authentication: {
        type: 'default',
        options: {
        	// 用户名
            userName: 'sa',
            // 密码
            password: '123456'
        }
    },
    options: {
        encrypt: false,
        // 数据库
        database: 'test'
    }
}
const connection = new Connection(SqlConfig);

执行连接

接下来可以通过绑定事件后执行连接,从而通过连接事件来判断是否连接成功:

connection.on('connect', function(err) {  
    if (err) {
      console.log('数据库连接失败!');
      throw err;
    }
    // SQL 语句逻辑编写
    console.log("Connected");  
});
connection.connect();

数据查询

利用 Request 来设置 SQL 语句请求,在通过 rowrequestCompleted 两个事件分别监控行数据和是否执行完,最后通过 execSql 函数来执行 SQL 语句请求:

// 设置 SQL 语句请求
const request = new Request("SELECT * FROM tb_sn;", function (err) {
    if (err) {
        console.log(err);
        res.status(500).json({ error: 'Internal Server Error' });
    }
});
// 记录查询的数据
const result = [];
// 监控行数据
request.on('row', function (columns) {
    let temp = {};
    // 字段遍历获取字段名称和字段对应值
    columns.forEach(function (column) {
        temp[column.metadata.colName] = column.value;
    });
    result.push(temp);
});
// 监控 SQL 语句请求执行完
request.on("requestCompleted", function () {
    console.log(result);
    connection.close();
    console.info('数据库连接关闭!');
});
// 执行 SQL 语句请求
connection.execSql(request);

完整代码示例

server.js node ./server.js

const SqlConfig = {
	// 数据库地址
    server: '127.0.0.1',
    authentication: {
        type: 'default',
        options: {
        	// 用户名
            userName: 'sa',
            // 密码
            password: '123456'
        }
    },
    options: {
        encrypt: false,
        // 数据库
        database: 'test'
    }
}
const Connection = require('tedious').Connection;
const Request = require('tedious').Request;
const connection = new Connection(SqlConfig);

connection.on('connect', function(err) {
    console.log("Connected");  
    executeStatement();  
});  
connection.connect();

function executeStatement() {  
    // 设置 SQL 语句请求
	const request = new Request("SELECT * FROM tb_sn;", function (err) {
	    if (err) {
	        console.log(err);
	        res.status(500).json({ error: 'Internal Server Error' });
	    }
	});
	// 记录查询的数据
	const result = [];
	// 监控行数据
	request.on('row', function (columns) {
	    let temp = {};
	    // 字段遍历获取字段名称和字段对应值
	    columns.forEach(function (column) {
	        temp[column.metadata.colName] = column.value;
	    });
	    result.push(temp);
	});
	// 监控 SQL 语句请求执行完
	request.on("requestCompleted", function () {
	    console.log(result);
	    connection.close();
	    console.info('数据库连接关闭!');
	});
	// 执行 SQL 语句请求
	connection.execSql(request);
}

效果图

【SQL server】NodeJs 服务器连接数据库,前端,SQL,服务器,数据库,运维

配置 HTTP 服务

介绍完,如何进行数据库连接以后,接下来就是如何进行请求访问啦。

基本思路

利用 Express 构建精简的 Web 应用程序功能,从而设置对外的数据请求接口。

安装 Express

pnpm install express

创建应用

const express = require('express');
const app= express();

配置路由

app.get('/api/sn', (req, res) => {
    res.send('Hello World!')
});

监听请求

app.listen(3000, () => {
  console.log(`Example app listening on port ${port}`)
})

完整代码示例

server.js node ./server.js

const express = require('express');
const app = express();

app.get('/api/sn', (req, res) => {
    res.send('Hello World!')
});

app.listen(3000, () => {
  console.log(`Example app listening on port 3000`)
})

效果图

【SQL server】NodeJs 服务器连接数据库,前端,SQL,服务器,数据库,运维

配置跨域

  • 安装依赖包
    pnpm install cors
    
  • 配置跨域
    const cors = require('cors');
    app.use(cors());
    

请求数据库数据

相信前面两个示例你都正常运行了,那么接下来就是将两者结合起来。

const express = require('express');
const cors = require('cors');
const app= express();
const port = 3000;

app.use(cors());

// 数据库
const SqlConfig = {
    server: '127.0.0.1',
    authentication: {
        type: 'default',
        options: {
            userName: 'sa',
            password: '123456'
        }
    },
    options: {
        encrypt: false,
        database: 'test'
    }
}
const Connection = require('tedious').Connection;
const Request = require('tedious').Request;

const connection = new Connection(SqlConfig);

// 路由
app.get('/api/sn', (req, res) => {
	// 可以使用 req.query 获取请求参数
    executeStatement(res, "SELECT * FROM tb_sn;");
});

// 动态执行 SQL 请求以获取实时数据
function executeStatement(res, sql) {
    connection.on('connect', (err) => {
        console.info('数据库连接成功!');
        const request = new Request(sql, function (err) {});
        const result = [];
        request.on('error', function (err) {
            connection.close();
            res.status(500).json({ error: 'Internal Server Error' });
        });
        request.on('row', function (columns) {
            let temp = {};
            columns.forEach(function (column) {
                temp[column.metadata.colName] = column.value;
            });
            result.push(temp);
        });
        request.on("requestCompleted", function () {
        	// 将查询结果写入请求里面 自动返回页面
            res.json(result);
            connection.close();
            console.info('查询完成!');
        });
        connection.execSql(request);
    });
    connection.connect();
}

app.listen(port, () => {
    console.info(`服务器启动成功, 端口 ${port}`);
})

效果图

【SQL server】NodeJs 服务器连接数据库,前端,SQL,服务器,数据库,运维文章来源地址https://www.toymoban.com/news/detail-828971.html

参考资料

  1. NodeJS 连接 SQL server:https://learn.microsoft.com/zh-cn/sql/connect/node-js
  2. Express 中文网:https://www.expressjs.com.cn/starter/hello-world.html
  3. expressjs/cors:https://github.com/expressjs/cors

到了这里,关于【SQL server】NodeJs 服务器连接数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SQL Server数据库如何添加Oracle链接服务器(Windows系统)

    官方下载地址:https://www.oracle.com/technetwork/topics/dotnet/downloads/odacdeploy-4242173.html 1.2.1 下载的压缩包解压位置   比如我直接放到D盘根目录 1.2.2 接着用管理员运行Cmd 此处一定要用管理员运行,否则会报错 使用管理员打开终端,运行如下命令: 在系统环境变量中,为Path添加“

    2024年02月14日
    浏览(69)
  • SQL SERVER从一台服务器复制数据库至另一台数据库详解--方法1

    一、 数据库的备份 1 选择想要复制的数据库   2右键点击数据库,选择任务、备份   3 生成备份文件   4 退出到主界面,右键新建数据库  5 在新建的数据库中右键选择还原,点击设备后面的三个点,在弹窗中把刚才备份的数据库文件选中。  6 点击确定以后,数据库还原完毕

    2024年02月06日
    浏览(64)
  • server win搭建apache网站服务器+php网站+MY SQL数据库调用电子阅览室

    1、使用开源的免费数据库Mysql; 2、自己建网站的发布; 3、使用php代码建网站; 4、使用windows server作为服务器; 5、使用apache作为网站服务器。 apache下载地址一:Apache VS17 binaries and modules download apache下载地址二:Apche下载 1、https://httpd.apache.org 2、点Files for Microsoft Windows 3、点

    2024年04月10日
    浏览(48)
  • 使用Microsoft SQL Server Managemant Studio从服务器上面复制数据库到另一台计算机上(2)

    一、配置SQL server 2019 配置管理器 1)进入该界面后,点击SQL Server服务,启动SQL Server代理为运行状态。 2) 点击SQL Server网络配置,启用其下面的TCP/IP协议。 3)将IP地址及端口正确填写,选择已启用。  4)注意将目标服务器和当下主机均按照上述操作流程进行操作。操作不当

    2024年02月08日
    浏览(68)
  • SQL Server无法连接服务器

    1、检查系统服务是否正常 2、检查SQL Server网络配置是否启用 3、双击TCP/IP检查端口是否启用 都检查完了,用telnet 127.0.0.1 1433测试一下 如需在其他机器上访问本机再做如下检查: 1、系统防火墙设置打开1433端口 具体步骤:1,控制面板—防火墙—打开或关闭防火墙—关闭防火墙

    2024年02月09日
    浏览(40)
  • 连接服务器中的SQL Server出现53错误

    你可以参照这张图,看你是否打开了tcp和数据的远程连接 当以上配置之后还是显示53号错误的话,你首先可以先尝试在服务器上连接数据库,看是否会报错,如果不会的话,就可以接下来的操作了 去查看服务器配置的安全组是否打开了1433端口 如果服务器没有打开1433端口的话

    2024年02月11日
    浏览(59)
  • navcat连接服务器sql server报错常见问题

    今天在服务器部署sql server,想用我电脑的Navcat来连接,结果报错,各种方法,找了几个小时,真无语。。。其实就是一些很常见的问题,可以检查以下这些问题。 报错信息如下: 翻译翻译: 目前大多数的服务器提供商基本都加了端口的限制。如果是用的腾讯、或者阿里之类

    2024年02月06日
    浏览(39)
  • SQL Server Management Studio(SSMS)连接服务器失败

    情况如下图所示: step1:打开 SQL Server配置管理器 step2:启动 SQL SERVER 至此问题就解决了~ 参考博客 SQL Server Management Studio(SSMS)无法连接到服务器,及解决方案_不支持通过ssms的专用管理员连接-CSDN博客 文章浏览阅读1.5w次,点赞13次,收藏48次。很多初次使用SSMS的小伙伴,由

    2024年04月27日
    浏览(39)
  • 连接服务器数据库出现问题:The driver has not received any packets from the server.(暴力解决,会导致数据丢失,因此需要有备份,慎用!!!)

    遇到这个问题第二次了,特此记录一下。 问题出现背景:在云服务器上使用mysql数据库,写程序的时候连接得好好的,能各种查询数据,过了一段时间发现突然连不上了,报错: W/System.err: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure W/System.err:  W/System.e

    2024年02月10日
    浏览(46)
  • 高性能服务器Nodejs操作Mysql数据库

    数据库和身份认证 配置 mysql 模块 安装 mysql 模块 建立连接 测试是否正常工作 1.2 操作 mysql 数据库 查询数据 插入数据 向表中新增数据时,如果数据对象的每个属性和数据表的字段一一对应,则可以通过如下方式快速插入数据: 更新数据 快捷方式: 删除数据 使用 delete 语句

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包