问题标签 [node-mssql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1181 浏览

json - 正在发送 HTML 而不是 JSON 数据

我正在尝试从 SQL 数据库中检索数据并在 Reactjs Web 应用程序上显示所述数据。但是,我对数据库的所有调用都会导致网页的 HTML 成为焦点。我已经设置了标头,并且尝试更改处理快速呼叫响应的方式。

这是我现在使用的 expressjs 脚本:

从那里开始,我的 axios 调用如下所示:

我添加了 console.log 来检查返回的内容,如前所述,它是当前焦点页面的 HTML 代码。

我做了一些更改以反映我为解决 500 问题所采取的步骤。但是,当前代码会导致 404。

0 投票
0 回答
1126 浏览

javascript - Using node mssql how do I create a database?

I tried the execute method:

#xA;

I get:

message: 'The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. The RPC name is invalid.',

Also tried the query method:

#xA;

I get

message: 'Incorrect syntax near \'@db_name\'.',

Is there a different method or am I missing something?

0 投票
0 回答
621 浏览

sql-server - SQL Server - 并发查询的性能问题

我最近在使用 SQL Server 时遇到了一个令人不安的问题。我正在使用节点程序来连接和运行查询。随着请求/数据库查询数量的增加,SQL Server 的性能似乎正在下降。

我使用了一个基本的测试场景,我得到了大约 6 个并发请求,这反过来又触发了 6 个并行的数据库查询。由于每个查询的结果评估时间大致乘以 6 倍。

所以,基本上当我点击一个查询时,大约需要 120 毫秒,但如果 6 个类似的查询是并行的,每个查询大约需要 7500 毫秒,这对于并发请求来说是一个令人不安的问题。

作为记录,我正在使用SELECT应该是非阻塞的查询。

任何帮助或信息将不胜感激。

更新

我检查了表,它没有任何索引。我测试过的查询是一个SELECT带有WHERE子句的简单查询。我还检查sys.dm_tran_lock了数据库锁信息,发现它正在为每个请求查询在该表上创建IS锁。它是在 Azure 实例上运行的 SQL Server 2012。我不确定硬件规格,但它应该符合标准。

我已经尝试了一些查询组合,似乎当并发查询使用相同的表/视图时它最有效。

0 投票
1 回答
1932 浏览

node.js - 节点:如何从 varbinary 转换为 SQL Server 数据类型的图像

我有一个带有类型图像的 SQL Server 数据库varbinary。我需要将varbinary图像转换并返回到网页。帮助将不胜感激。

我发现了这个,它非常有帮助,但我需要反过来。 Node.js 如何从 MS Sql 服务器数据类型的 varbinary 转换为图像

就像是 ...

而我的服务是这样的......

0 投票
1 回答
333 浏览

sql-server - SQL Server:不使用 [GO] 在 DB 中创建过程

我想使用node-mssql在 SQL Server 2017 中执行的这个(简化的)查询:

node-mssql使用和需要分号声明语法错误[GO],因此我尝试这个:

现在我们得到错误:

CREATE/ALTER PROCEDURE' 必须是查询批处理中的第一条语句。

所以让我们试试这个:

现在我们得到

RequestError:“CREATE/ALTER PROCEDURE”不允许将数据库名称指定为对象名称的前缀。

自然地,没有任何 DB 声明,它会尝试附加到主错误:

数据库“master”中的 CREATE PROCEDURE 权限被拒绝。

0 投票
0 回答
242 浏览

node.js - azure 上的 iisnode 处理的流量不如本地

我在 azure 上有一个 nodejs webapp,我可以用 100 个并发用户以 50 rps 在本地测试代码 10 分钟,并且我收到零错误。每个请求都在调用数据库并写入。

但是,当部署在 Azure 上时,我会不断收到请求超时、连接重置和连接超时,而且负载也较小(平均每分钟约 1000 个请求)。

流量的主要来源是一个将事件发布到我的端点的 Azure 函数。然后我进行查找以查看我的表中是否有用户/事件,然后存储该事件。

有人想帮助我诊断什么信息?

我正在使用全局共享连接池(我将其传递给每个请求):

应用程序.js

db_util.js

这些是最常见的错误:

错误:BadRequestError:请求中止

获取用户时出错:TimeoutError: ResourceRequest 超时

sql 错误:ConnectionError:无法连接到此处的服务器地址- 写入ECONNRESET

0 投票
1 回答
261 浏览

node.js - 大量数据导出的NodeJS问题

我有一个场景。在 DB 中,我有一个包含大量记录(200 万)的表,我需要将它们导出到 xlsx 或 csv。

所以我使用的基本方法是对 DB 运行查询并将数据放入适当的文件中进行下载。

问题:

  1. 我已将数据库超时设置为 150 秒,这有时还不够,我不确定扩展超时是否是个好主意!
  2. express request也有一定的超时,所以它基本上使我的 HTTP req 超时并第二次命中(原因不明)

因此,作为一种解决方案,我正在考虑使用数据库连接,并且如果我可以以任何方式提供文件的输出流,它应该可以工作。

所以基本上我需要第二部分的帮助,在流中,我会一个接一个地接收记录,同时,我正在考虑允许用户逐步下载文件。(这将避免请求超时)

我不认为这是一个独特的问题,但没有找到任何合适的部分放在一起。提前致谢!

0 投票
1 回答
94 浏览

google-app-engine - 从 Google App Engine (NodeJs) 查询 Azure SQL 数据库

我在 Google App Engine 上使用node-mssql来查询托管在 Azure 上的 Sql 数据库。我遇到的问题是 App Engine 节点服务器不断更改 IP 地址。因此,我必须将 Azure 上所有可能的(我不知道有多少)IP 地址列入白名单。还有其他方法吗?

0 投票
0 回答
1538 浏览

javascript - 无法读取 null [node-mssql] 的属性“释放”

我正在尝试运行一个脚本,从一个数据库中提取记录,然后将记录插入另一个数据库,但在插入步骤中,我不断遇到此错误 8 或 9 次重复。

我对 node-mssql 库不是很熟悉,如果能对这里发生的事情有任何见解,我将不胜感激!我附上了堆栈跟踪和脚本的副本。

我查看了这个问题NPM MSSQL - error: uncaughtException: Cannot read property 'release' of null但看起来没有确定的解决方案。

错误堆栈跟踪:

堆栈跟踪

编辑:自从我的原始帖子以来,我已将插入查询转换为preparedstatement:

我不确定为什么preparedstatement 解决方案比以前的解决方案有效,但是preparedstatement 解决方案似乎没有出错并正确插入所有记录。

至于 sql.close() 全局连接问题,做

创建全局连接?我假设它正在创建本地连接,如果我这样做了

它将创建一个单独的 sql 连接,但似乎并非如此,因为sql.close()在创建 pool2 之前我无法运行该脚本。

我检查了 node-mssql 文档,看起来如果我在没有池规范的情况下执行请求,它将使用全局 sql 连接;也许这就是我的脚本正在发生的事情?https://www.npmjs.com/package/mssql#request

0 投票
0 回答
289 浏览

sql-server - 处理 node-mssql 中的数据库中断错误

我正在使用 node-mssql 模块连接到 SQL 服务器。这一切都很好。我有一个随机发生的问题,不知道为什么。所以,我做了一些测试。我创建了一个连接池

并在其中触发了一个查询,在一些超时后效果很好。现在来测试它如何处理中断,在创建连接后(在上面的代码中),我停止了 SQL 服务器,还尝试断开网络连接。我曾希望我会在查询中遇到一些错误,但它会无限运行。错误处理程序也没有捕获任何内容,定义如下

我虽然使用了 PreparedStatement。像下面的东西

因此, ps.execute 永远不会返回回调,即使在 requestTimeout 时间之后也是如此。提前感谢您的任何帮助/指导。

更新 我在 node-mssql 中尝试了调试选项,这是我在卡住时得到的最后一个输出。